dict
Python内置了字典:dict的支持,dict全称dictionary,使用键-值(key-value)存储
如果用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。用Python写一个dict如下:
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
Dict内置的几种方法
dict.items() 以列表返回可遍历的(键, 值) 元组数组
dict.keys() 以列表返回一个字典所有的键
dict.values() 以列表返回字典中的所有值
题目
代码
# 1、循环输入姓名和成绩
# 2、将姓名和成绩 映射成字典
# 3、获得最高分 最低分 和 总分
# 4、根据最高分和最低分 找到对应的人
temp = {}
name = ""
score = 0.0
allSum = 0.0
maxScore = 0.0
minScore = 0.0
n = 12 # n 就是 有多少个人
for i in range(n):
# 输入姓名和成绩
name = input()
score = float(input())
# 建立映射关系
temp[name] = score
# 字典名[key] = value
allSum += score
#minScore = min(2,3,4,5) # minScore = 2
minScore = min(temp.values())
maxScore = max(temp.values())
temp['yxr']
for name in temp.keys():# 遍历 字典的keys列表
if temp[name] == maxScore: # 当前name 就是获得最高分的人
print("成绩最好的是:",name,maxScore)
if temp[name] == minScore:
print("成绩较差的是:",name,minScore)
print("平均分:",allSum/n)
set
- set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
- set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:
- 创建一个集合可以使用大括号’{ }’ 或者 set( )
- 创建空集合的时候只能使用set的方法
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2 # 交集操作
{2, 3}
>>> s1 | s2 # 并集操作
{1, 2, 3, 4}
题目
代码
# 定义两个集合
# 生成随机数填入集合中
# 对集合进行运算
import random
a = set()
b = set()
# 填入随机数
for i in range(5):
a.add(random.randint(0,10))
for i in range(5):
b.add(random.randint(0,10))
print("a = ",a)
print("b = ",b)
print("a & b =",a & b)
print("a | b =",a | b)
print(a - b)