示例:
代码功能:随机生成20位学生即其成绩,筛选并打印出90分以上的学生及其成绩。
不采用字典生成式:
import random
stuInfo = {} ##存放学生信息字典
for i in range(20): ##循环20次即有20位学生
name = 'stu' + str(i) ##学生名字
score = random.randint(60,100) ##随机生成每个学生成绩
stuInfo[name] = score ##将学生成绩作为value赋值给每个学生
highscore = {} ##高分学生的字典
for name,score in stuInfo.items(): ##遍历所有学生的信息
if score > 90: ##筛选出成绩在90分以上的学生
highscore[name] = score ##用key-value方式给高分学生字典增加key-value对
print(highscore) ##打印高分学生字典
下 面 是 采 用 了 字 典 生 成 式 的 代 码 : 我 们 将 高 分 字 典 的 定 义 和 其 后 的 循 环 注 释 掉 , 改 用 字 典 生 成 式 。 \color{blue}{下面是采用了字典生成式的代码:我们将高分字典的定义和其后的循环注释掉,改用字典生成式。} 下面是采用了字典生成式的代码:我们将高分字典的定义和其后的循环注释掉,改用字典生成式。
import random
stuInfo = {} ##存放学生信息字典
for i in range(20): ##循环20次即有20位学生
name = 'stu' + str(i) ##学生名字
score = random.randint(60,100) ##随机生成每个学生成绩
stuInfo[name] = score ##将学生成绩作为value赋值给每个学生
print({name: score for name,score in stuInfo.items() if score > 90})
字典生成式:
定义:
同列表生成式一样,字典生成式是用来快速生成字典的。通过直接使用一句代码来指定要生成字典的条件及内容,替换了使用多行条件或者是多行循环代码的传统方式。
格式:
{字典内容+循环条件+判断条件【产生条件】}
大大的小小阳