概念
- 字典生成式同列表生成式类似,是Python内置的非常简单却强大的可以用来创建dict的生成式。
- 格式:
{表达式 for k,v in dict.items() if 条件}
实例
我们通过几个实例来理解,字典生成式的使用方法。
- 假设有20个学生,名字为studentx,学生分数在60-100之间,筛选出成绩在90分以上的学生
import random
studentInfo = {}
for i in range(20):
name = 'student' + str(i)
score = random.randint(60, 100)
studentInfo[name] = score
print(studentInfo)
# 1.使用传统方法
aLevel = {}
for name, score in studentInfo.items():
if score >= 90:
aLevel[name] = score
print(aLevel)
# 2.使用字典生成式
print({name: score for name, score in studentInfo.items() if score >= 90})
结果:
- 将字典中所有的key值忽略大小写,将key值相同的value值相加
d = dict(a=1,b=2,c=2,B=9,A=10)
print(d)
# 方法1:for循环遍历字典,加key值判断
resDict = {}
for k in d:
k_lower = k.lower()
if k_lower not in resDict:
resDict[k_lower] = d[k]
else:
resDict[k_lower] += d[k]
print(resDict)
# 方法2:使用k.lower() 将所有的k转换成小写,
# 使用字典的d.get方法找到对应的大小写的key对应的value值,如果没有的话,默认值为0
print({k.lower():(d.get(k.lower(),0)+d.get(k.upper(),0)) for k in d})
结果: