回顾:

image.png

列表:

什么是列表

image.png

image.png

例:创建一个列表名为list1的列表,列表里有三个元素:'小明',18,1.70,并将其打印出来:
  1. list1 = ['小明',18,1.70]
  2. print(list1)
  1. list1 = ['小明',18,1.70]
  2. for i in list1:
  3. print(i)

从列表提取单个元素

image.png

image.png

例:现在要喊小明来回答问题,用代码怎么写呢?请补充下列代码,利用列表的偏移量来打印出’小明’这个元素。
  1. students = ['小明','小红','小刚']
  2. print(students[0])

从列表提取多个元素

image.png

例:提取元素
  1. list2 = [5,6,7,8,9]
  2. print(list2[:])
  3. print(list2[2:])
  4. print(list2[:2])
  5. print(list2[1:3])
  6. print(list2[2:4])

给列表增加/删除元素

image.png

例:增加元素
  1. # 请运行以下代码:报错后,可读一下报错信息,然后将第6行注释掉再运行。
  2. list3 = [1,2]
  3. list3.append(3)
  4. print(list3)
  5. #list3.append(4,5)
  6. list3.append([4,5])
  7. print(list3)

报错解释:多个参数

image.png
append后的括号里只能接受一个参数,但却给了两个,也就是4和5。所以,用append()给列表增加元素,每次只能增加一个元素。

例:删除元素
  1. students = ['小明','小红','小刚','小美']
  2. del students[1]
  3. print(students)

总结:

image.png

字典

什么是字典

image.png

image.png

  1. students = ['小明','小红','小刚']
  2. scores = {'小明':95,'小红':90,'小刚':90}

例:用len()函数来得出一个列表或者字典的长度(元素个数),括号里放列表或字典名称。
  1. #直接运行代码即可
  2. students = ['小明','小红','小刚']
  3. scores = {'小明':95,'小红':90,'小刚':90}
  4. print(len(students))
  5. print(len(scores))

从字典中提取元素

image.png

例:将小明的成绩从字典里打印出来。这就涉及到字典的索引,和列表通过偏移量来索引不同,字典靠的是键。
  1. # 请你运行下面的代码:
  2. scores = {'小明': 95, '小红': 90, '小刚': 90}
  3. print(scores['小明'])

给字典增加/删除元素

image.png

例:删除以及新增键值对
  1. # 直接运行下面的代码,留意字典以及新的键值对是如何增加的:
  2. album = {'周杰伦':'七里香','王力宏':'心中的日月'}
  3. del album['周杰伦']
  4. print(album)
  5. album['周杰伦'] = '十一月的萧邦'
  6. print(album)
  7. print(album['周杰伦'])
  8. #结果
  9. {'王力宏': '心中的日月'}
  10. {'王力宏': '心中的日月', '周杰伦': '十一月的萧邦'}
  11. 十一月的萧邦

例:把小刚的成绩改成92分吧。对了,新来的小美也考了,得了85。请你对字典里进行修改和新增,然后将整个字典都打印出来。
  1. scores = {'小明':95,'小红':90,'小刚':90}
  2. del scores['小刚']
  3. scores['小刚'] = 92
  4. scores['小美'] = 85
  5. print(scores)

总结:

image.png

列表和字典的不同点


一个很重要的不同点是列表中的元素是有自己明确的“位置”的,所以即使看似相同的元素,只要在列表所处的位置不同,它们就是两个不同的列表。

  1. # 如果==左右两边相等,值为True,不相等则为False。
  2. print(1 == 1)
  3. # 1等于1,所以值为True
  4. print(1 == 2)
  5. # 1不等于2,所以为False
  6. students1 = ['小明','小红','小刚']
  7. students2 = ['小刚','小明','小红']
  8. print(students1 == students2)
  9. scores1 = {'小明':95,'小红':90,'小刚':100}
  10. scores2 = {'小刚':100,'小明':95,'小红':90}
  11. print(scores1 == scores2)
  12. #结果
  13. True
  14. False
  15. False
  16. True

列表和字典的相同点

1、在列表和字典中,如果要修改元素,都可用赋值语句来完成。

  1. list1 = ['小明','小红','小刚','小美']
  2. list1[1] = '小蓝'
  3. print(list1)
  4. dict1 = {'小明':'男'}
  5. dict1['小明'] = '女'
  6. print(dict1)

2、支持任意嵌套

image.png

image.png

  1. students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]
  2. print(students[1][3])


例:字典嵌套字典
  1. #取出小芳的成绩
  2. scores = {
  3. '第一组':{'小明':95,'小红':90,'小刚':100,'小美':85},
  4. '第二组':{'小强':99,'小兰':89,'小伟':93,'小芳':88}
  5. }
  6. print(scores['第二组']['小芳'])

例:综合嵌套
  1. # 最外层是大括号,所以是字典嵌套列表,先找到字典的键对应的列表,再判断列表中要取出元素的偏移量
  2. students = {
  3. '第一组':['小明','小红','小刚','小美'],
  4. '第二组':['小强','小兰','小伟','小芳']
  5. }
  6. print(students['第一组'][3])
  7. #取出'第一组'对应列表偏移量为3的元素,即'小美'
  8. # 最外层是中括号,所以是列表嵌套字典,先判断字典是列表的第几个元素,再找出要取出的值相对应的键
  9. scores = [
  10. {'小明':95,'小红':90,'小刚':100,'小美':85},
  11. {'小强':99,'小兰':89,'小伟':93,'小芳':88}
  12. ]
  13. print(scores[1]['小强'])
  14. #先定位到列表偏移量为1的元素,即第二个字典,再取出字典里键为'小强'对应的值,即99。

例: 1.打印出字典students里的小刚 2.打印出列表scores里小刚的分数100
  1. students = {
  2. '第一组':['小明','小红','小刚','小美'],
  3. '第二组':['小强','小兰','小伟','小芳']
  4. }
  5. scores = [
  6. {'小明':95,'小红':90,'小刚':100,'小美':85},
  7. {'小强':99,'小兰':89,'小伟':93,'小芳':88}
  8. ]
  9. print(students['第一组'][2])
  10. print(scores[0]['小刚'])