python 第4关 列表和字典-收纳的艺术
第4关 列表和字典-收纳的艺术
课程目标
1.熟练掌握列表、字典中元素的增删改查
2.理解列表和字典的区别
课程难点
1.列表与字典增删改查的异同
2.正确使用切片,深刻理解切片时冒号左右数字的意义
课程重要内容重现
一、列表
1.代码格式
students是列表名,数据存储在里,用逗号隔开并使用等号赋值给列表。中括号里面的每一个数据叫作“元素”。
列表中的元素是有自己明确的“位置”的,元素相同,在列表中排列顺序不同,就是两个不同的列表。
列表中字符串、整数、浮点数都可以存储。
list=['小明',17,5.2]
1.提取元素
1)、偏移量:元素在列表中的编号。
- 偏移量是从0开始的;
- 列表名后加带偏移量的中括号,就能取到相应位置的元素。
2)、切片:用冒号来截取列表元素的操作。 -
切片截取了列表的一部分,所以得到的结果仍然是一个列表。(即使只有一个元素,也是在列表里的,与用偏移量取单个元素区别开)
students=['小明','小红','小刚']
print(students[2])
#使用偏移量提取单一元素,结果显示:
#小刚
print(students[2:])
#使用切片,即使结果仍然只有一个元素,但显示为列表:
#['小刚']
3)特别地,a,b,c=students,也可以提取出列表中的元素,变量分别用逗号隔开,且变量的数量与列表元素数一致,最终列表元素会分别赋值给变量,例如:
appetizer=['话梅花生','拍黄瓜','凉拌三丝']
a,b,c=appetizer
print(a)
print(b)
print(c)
print(a,b,c)
#结果显示为
#话梅花生
#拍黄瓜
#凉拌三丝
#话梅花生 拍黄瓜 凉拌三丝
1.增加/删除元素.
1)增加元素列表名.append()。注意这里是.不是空格!
append后的括号里只能接受一个参数,结果是让列表末尾新增一个元素。列表⻓度可变,理论容量无限,所以支持任意的嵌套。
list3=[1,2]
list3.append(3)
print(list3)
#添加‘3’这个元素
#结果显示:
#[1,2,3]
list3.append(4,5)
list3.append([4,5])
print(list3)
#添加‘[4,5]’这个列表,也就是append()的参数为一个列表,也是一个参数,所以不会报错
#结果显示:
#[1,2,3,[4,5]]
但是append(4,5)会报错,因为给了两个元素(没有作为一个整体,所以算两个参数)。注意!!千万不能:a=student.append(3) 如果想一起加两个元素 用expend
aList = [123, 'xyz', 'zara', 'abc', 123];
bList = [2009, 'manni'];
aList.extend(bList)
print "Extended List : ", aList ;
以上实例输出结果如下:
Extended List : [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']
2)删除元素del列表名[元素的索引]。注意这里是空格不是.了!
与append()函数类似,能删除单个元素、多个元素(切片)、整个列表。
3)修改元素
使用偏移量修改对应位置的元素。
list1 = ['小明','小红','小刚','小美']
list1[1] = '小兰'
print(list1)
#结果显示
#['小明','小兰','小刚','小美']
二、字典
1.代码格式
- 字典外层是大括号{},用等号赋值;
- 列表中的元素是自成一体的,而字典的元素是由键值对构成的,用英文冒号连接。有多少个键值对就有多少个元素。如'小明':95,其中我们把'小明'叫键(key),95叫值(value)。
- 键值对间用逗号隔开
所存储的两种数据若存在一一对应的情况,用字典储存会更加方便。唯一的键和对应的值形成的整体,我们就叫做【键值对】。键具备唯一性,而值可重复。
字典中数据是随机排列的,调动顺序也不影响。所以列表有序,要用偏移量定位;字典无序,便通过唯一的键来取值。
(注:len()函数用于获取数据⻓度)
students=['小明','小红','小刚']
scores={'小明':95,'小红':90,'小刚':90}
print(len(students))
print(len(scores))
#结果显示
#3
#3
#字典的元素个数,数冒号就行了
2.提取元素
字典没有偏移量,所以在提取元素时,中括号中应该写键的名称,即字典名[字典的键]。提取出来的是key对应的value,而不会显示键的数据!
3.增加/删除元素、
1)新增元素
字典名[键]=值。每次只能新增一个键值对。scores['小刚','小美']=92,85,这样是不对的,最终会输出('小刚','小美':(92,85))作为一个键值对。
album={'周杰伦':'七里香'}
album['王力宏']='心中的日月'
album['林俊杰']='小酒窝'
print(album)
print(album['周杰伦'])
#结果显示
#{'周杰伦':'七里香','王力宏':'心中的日月','林俊杰':'小酒窝'}
#七里香
2)删除元素
del字典名[键]
album={'周杰伦':'七里香','王力宏':'心中的日月'}
delalbum['周杰伦']
print(album)
#结果显示
#{'王力宏':'心中的日月'}
3)修改元素
如果不是整个键值对都不需要,只需要改变对应key下的value,修改就可以,不需要del。
dict1={'小明':'男'}
dict1['小明']='女'
print(dict1)
#字典没有偏移量,只能通过key找到元素位置
三、列表与字典的嵌套
1.列表与列表
列表中有两个列表元素,[1]表示取第二个元素(列表),[2]表示取第二个元素中的第三个元素(偏移量为2)。
student=[['小红','小黄','小橙'],['小绿','小蓝','小紫','小青']]1
print(student[1][2])
#结果显示为
#小紫
1.字典与字典
字典中存储了两个字典,所以提取数据时只能用key值。
scores={'第一组':{'小明':95,'小红':96},'第二组'{'小刚':94',小青':99}}
print(scores['第一组']['小红'])
#结果显示:
#96
1.列表与字典
使用偏移量从最外层括号到最内层括号取数。查找townee列表中的第六个元素中的第2个元素(一定是字典,因为之后用的是键值而不是偏移量)中key为'反面⻆色'的value。
townee=[
{'海底王国':['小美人鱼''海之王''小美人鱼的祖母''五位姐姐'],'上层世界':['王子','邻国公主']},
'丑小鸭','坚定的锡兵','睡美人','青蛙王子',
[{'主角':'小红帽','配角1':'外婆','配角2':'猎人'},{'反面角色':'狼'}]]
print(townee[5][1]['反面角色'])
截屏2019-12-22下午11.03.35.png