列表
一个列表需要用中括号[ ]把里面的各种数据框起来,里面的每一个数据叫作“元素”。每个元素之间都要用英文逗号隔开。列表很包容,各种类型的数据(整数/浮点数/字符串)无所不能包。
>>> list1=['小明',18,1.70]
>>> print(list1)
要注意一个细节:偏移量取到的是列表中的元素,而切片则是截取了列表的某部分
>>> students = ['小明','小红','小刚']
>>> print(students[2])
小刚
>>> print(students[2:])
['小刚']
给列表增加/删除元素
增加案例:list_students.append('小美')
删除案例:del list_students[1]
append()函数给列表增加元素
>>> list3 = [1,2]
>>> list3.append(3)
>>> print(list3)
[1, 2, 3]
>>> list3.append([4,5])
>>> print(list3)
[1, 2, 3, [4, 5]]
append函数后的参数只要满足数量为一即可(单个列表也会视作一个元素)。
del()函数从列表删除元素:既能删除一个元素,也能一次删除多个元素(原理和切片类似,左取右不取)。
students = ['小明','小红','小刚','小美']
>>> del students[1]
>>> print(students)
['小明', '小刚', '小美']
字典
字典和列表有3个地方是一样的:1.有名称;2.要用=赋值;3.用逗号作为元素间的分隔符。
而不一样的有两处:1.列表外层用的是中括号[ ],字典的外层是大括号{ };
students=['小明','小红','小刚']
scores={'小明':95,'小红':90,'小刚':90}
列表中的元素是自成一体的,而字典的元素是由一个个键值对构成的,用英文冒号连接。如'小明':95,其中我们把'小明'叫键(key),95叫值(value)。需要强调的是,字典中的键具备唯一性,而值可重复。也就是说字典里不能同时包含两个'小明'的键,但却可以有两个同为90的值。
>>> scores = {'小明': 95, '小红': 90, '小刚': 90}
>>> print(scores['小明'])
95
以上是从字典中提取对应的值的用法。和列表相似的是要用[ ],不过因为字典没有偏移量,所以在中括号中应该写键的名称,即字典名[字典的键]。
给字典增加/删除元素
增加案例:scores['小美'] =85
删除案例:del scores['小刚']
>>> album = {'周杰伦':'七里香','王力宏':'心中的日月'}
>>> del album['周杰伦']
>>> print(album)
{'王力宏': '心中的日月'}
>>> album['周杰伦'] = '十一月的萧邦'
>>> print (album)
{'王力宏': '心中的日月', '周杰伦': '十一月的萧邦'}
删除字典里键值对的代码是del语句del 字典名[键],而新增键值对要用到赋值语句字典名[键] = 值。
>>> students1 = ['小明','小红','小刚']
>>> students2 = ['小刚','小明','小红']
>>> print(students1 == students2)
False
>>> scores1 = {'小明':95,'小红':90,'小刚':100}
>>> scores2 = {'小刚':100,'小明':95,'小红':90}
>>> print(scores1 == scores2)
列表和字典一个很重要的不同点是列表中的元素是有自己明确的“位置”的,所以即使看似相同的元素,只要在列表所处的位置不同,它们就是两个不同的列表。而字典相比起来就显得随和很多,调动顺序也不影响。因为列表中的数据是有序排列的,而字典中的数据是随机排列的。这也是为什么两者数据读取方法会不同的原因:列表有序,要用偏移量定位;字典无序,便通过唯一的键来取值。
共同点1:在列表和字典中,如果要修改元素,都可用赋值语句来完成。
>>> list1 = ['小明','小红','小刚','小美']
>>> list1[1]='小蓝'
>>> print (list1)
['小明', '小蓝', '小刚', '小美']
>>> dict1 = {'小明':'男'}
>>> dict1['小明'] = '女'
>>> print(dict1)
{'小明': '女'}
共同点2:支持任意嵌套。除之前学过的数据类型外,列表可嵌套其他列表和字典,字典也可嵌套其他字典和列表。
>>> students=[['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]
>>> print (students[1][1])
小兰
>>> scores = { '第一组':{'小明':95,'小红':90,'小刚':100,'小美':85},'第二组':{'小强':99,'小兰':89,'小伟':93,'小芳':88}}
>>> print(scores['第二组']['小芳'])
88
>>> students = {'第一组':['小明','小红','小刚','小美'], '第二组':['小强','小兰','小伟','小芳']}
>>> print(students['第一组'][3])
小美
>>> scores = [{'小明':95,'小红':90,'小刚':100,'小美':85}, {'小强':99,'小兰':89,'小伟':93,'小芳':88}]
>>> print(scores[1]['小强'])
99
元组(tuple)。 列表很相似,不过,它是用小括号来包的。
元组和列表都是序列,提取的方式也是偏移量,如 tuple1[1]、tuple1[1:]。另外,元组也支持任意的嵌套。
>>> tuple1 = ('A','B')
>>> print(tuple1[0])
A
>>> list2 = [('A','B'),('C','D'),('E','F')]
>>> print(list2[1][1])
D
>>> townee = [{'海底王国':['小美人鱼''海之王''小美人鱼的祖母''五位姐姐'],'上层世界':['王子','邻国公主']},'丑小鸭','坚定的锡兵','睡美人','青蛙王子',[{'主角':'小红帽','配角1':'外婆','配角2':'猎人'},{'反面角色':'狼'}]]
>>> print(townee[5][1]['反面角色'])
狼