假设有20个学生,学生的分数在60~100之间,筛选出成绩在90分以上的学生
import random # 导入随机模块
stuinfo = {} # 定义一个字典,用于存放学生成绩名单
for i in range(20): # 随机生成20个
name = 'westos' + str(i) # i为数字,转变成字符串型,连接字符串,用于区分学生姓名
score = random.randint(60, 100) # 在60~100中随机生成20个整数作为学生成绩
stuinfo[name] = score # 添加到字典中,name与score对应
print(stuinfo) # 打印学生成绩单
# 筛选90分以上的学生成绩单
# high_score = {} # 定义一个字典,用于存放90以上的学生成绩
# for name, score in stuinfo.items(): # 对存放所有学生成绩的成绩单进行遍历
# if score > 90:
# high_score[name] = score # 90以上的学生名字及成绩添加到90以上的成绩单中
# print(high_score)
# 应用字典生成式筛选90分以上的学生成绩
print({name: score for name, score in stuinfo.items() if score > 90})
将所有的key值都变成大写
d = dict(a=1, b=2)
# 方法一:
new_d = {}
for i in d:
new_d[i.upper()] = d[i]
print(new_d)
# 方法二:利用字典生成式生成新字典
print({k.upper(): v for k, v in d.items()})
大小写的key值合并,统一以小写输出
d = dict(a=1, b=2, C=3, B=4)
# 方法一:
# new_d = {}
# for k, v in d.items():
# lower_k = k.lower() # 将k值换为小写
# if lower_k not in new_d: # 如果小写的k不在新列表中
# new_d[lower_k] = v # 在新列表中添加
# else: # 否则,小写的k在新列表中出现
# new_d[lower_k] += v #把相同小写的key对应的value值相加积累
# print(new_d)
#方法二:利用字典生成式
print({k.lower(): d.get(k.upper(), 0) + d.get(k.lower(), 0) for k in d})