一、什么是字典生成式
Python内置的一种极其强大的生成字典dict 的表达式。返回结果必须是字典。
二、字典生成式的格式
{key变量表达式:value变量表达式 for 变量 in 表达式 if 变量的判断条件(结果为True 或者False)}
三、练习
1、假设有20个学生,学生的分数在60~100之间,筛选出成绩在90
分以上的学生
import random #成绩单的制定
student={}
for i in range(20):
name='yunyuzhu' + str(i)
score = random.randint(60,100)
student[name] = score
highscore={} #筛选成绩
for k,v in student.items():
if v > 90:
highscore[k]= v
print(highscore)
筛选成绩模块,用字典生成式,即:
print({name: score for name,score in student.items() if score>90})
对应的含义:name: score 返回符合条件的名字和成绩这两项
for name ,score in student.items() if score > 90 在student.items这个字典里,筛选出成绩>90的姓名,和成绩
2、将所有key值变成大写
接着上一道题的字典:
print({name.upper():score for name,score in student.items()})
3、大小写的key值合并,统一以小写输出
d = dict(a=1,b=2,c=3,B=8,A=10)
# new_d = {}
# for k,v in d.items():
# low_k = k.lower()
# if low_k not in new_d:
# new_d[low_k] = v
# else:
# new_d[low_k] += v
#
# print(new_d)
print({k.lower():d.get(k.upper(),0)+d.get(k.lower(),0)for k in d})
输出:
{'a': 11, 'b': 10, 'c': 3}

385

被折叠的 条评论
为什么被折叠?



