dict

Python内置了字典:dict的支持,dict全称dictionary,使用键-值(key-value)存储image.png
如果用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。用Python写一个dict如下:

  1. >>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
  2. >>> d['Michael']
  3. 95

Dict内置的几种方法
dict.items() 以列表返回可遍历的(键, 值) 元组数组
dict.keys() 以列表返回一个字典所有的键
dict.values() 以列表返回字典中的所有值
题目
image.png
代码

  1. # 1、循环输入姓名和成绩
  2. # 2、将姓名和成绩 映射成字典
  3. # 3、获得最高分 最低分 和 总分
  4. # 4、根据最高分和最低分 找到对应的人
  5. temp = {}
  6. name = ""
  7. score = 0.0
  8. allSum = 0.0
  9. maxScore = 0.0
  10. minScore = 0.0
  11. n = 12 # n 就是 有多少个人
  12. for i in range(n):
  13. # 输入姓名和成绩
  14. name = input()
  15. score = float(input())
  16. # 建立映射关系
  17. temp[name] = score
  18. # 字典名[key] = value
  19. allSum += score
  20. #minScore = min(2,3,4,5) # minScore = 2
  21. minScore = min(temp.values())
  22. maxScore = max(temp.values())
  23. temp['yxr']
  24. for name in temp.keys():# 遍历 字典的keys列表
  25. if temp[name] == maxScore: # 当前name 就是获得最高分的人
  26. print("成绩最好的是:",name,maxScore)
  27. if temp[name] == minScore:
  28. print("成绩较差的是:",name,minScore)
  29. print("平均分:",allSum/n)

set

  • set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
  • set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:
  • 创建一个集合可以使用大括号’{ }’ 或者 set( )
  • 创建空集合的时候只能使用set的方法


  1. >>> s1 = set([1, 2, 3])
  2. >>> s2 = set([2, 3, 4])
  3. >>> s1 & s2 # 交集操作
  4. {2, 3}
  5. >>> s1 | s2 # 并集操作
  6. {1, 2, 3, 4}

题目
image.png
代码

  1. # 定义两个集合
  2. # 生成随机数填入集合中
  3. # 对集合进行运算
  4. import random
  5. a = set()
  6. b = set()
  7. # 填入随机数
  8. for i in range(5):
  9. a.add(random.randint(0,10))
  10. for i in range(5):
  11. b.add(random.randint(0,10))
  12. print("a = ",a)
  13. print("b = ",b)
  14. print("a & b =",a & b)
  15. print("a | b =",a | b)
  16. print(a - b)