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)

在这里插入图片描述
字典生成式

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})   

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值