Lesson 84 python中的字典生成式
1. 示例1:选出20个学生中成绩在90分以上的学生
需求:假设有20个学生,学生名为westosX,学生分数在60-100之间
#选出成绩在90分以上的学生
import random #定义一个生成随机数的包
stuInfo = {} #定义一个空字典,用来存储学生信息
for i in range(20): #i从0到19
name = 'westos' + str(i) 学生名称为westos加数字,将数字类型转为字符串类型才能与westos连接
score = random.randint(60,100) #随机生成60到100的整数作为学生的分数
stuInfo[name] = score #给每个name赋value值
# print(stuInfo)
highscore = {} #定义一个字典,存储高分(成绩在90分以上)
for name,score in stuInfo.items(): #查看stuInfo字典的name和score键值对
if score > 90: #如果分数大于90
highscore[name] = score #就将分数赋给highscore字典
print(highscore)
字典生成式
print({name: score for name,score in stuInfo.items() if score > 90})
2. 示例2:将列表key值变为大写
d = dict(a=1,b=2), 将所有的key值变为大写
d = dict(a=1,b=2)
# print(d)
new_d = {} #定义一个空字典
for i in d: #遍历字典元素
new_d[i.upper()] = d[i] #将元素变成大写放入新字典
print(new_d)
可以看到,key值的小写字母变成了大写字母
字典生成式
print({k.upper(): v for k,v in d.items()})
3. 示例3:大小写key的值合并,统一以小写输出
d = dict(a=2,b=1,c=2,B=9,A=10)
{'a':12,'b':10,'c':2}
new_d = {}
for k,v in d.items(): #遍历字典的键值对
low_k = k.lower() #将键的大写变成小写赋给low_k变量
if low_k not in new_d: 如果low_k的元素不在new_d
new_d[low_k] = v 将对应的value值给new_d
else:
new_d[low_k] += v #否则就给原有的元素加上value值
print(new_d)
字典生成式
print({k.lower(): d.get(k.lower(),0) + d.get(k.upper(),0) for k in d}) #打印小写字母:通过键来获得大小写字母的value值,并且返回i0