python——字典生成式(dict comprehensions)

本文介绍了Python字典生成式的基本概念,并通过四个示例详细讲解了其用法,包括筛选高分学生、转换键为大写、合并大小写键以及交换字典的键值对。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字典生成式和列表生成式很类似,下面用几个例题来对其进行理解:

 

1. 假设有20个学生,成绩在[60,100]之间,筛选并打印出90分以上的学生序号:

## 第一步,我们先模拟出班级中20个学生的成绩:

import random

d1 = {}
for i in range(1, 21):
    name = 'westos' + str(i)  ## 学生班级序号
    score = random.randint(60, 100)  ## 随机产生分数
    d1[name] = score
print(d1)

## 第二步,用字典生成式筛选并打印出90分以上学生的班级序号:

d2 = {name for name,score in d1.items() if score >= 90}
print(d2)

运行结果;

 

2.   将字典d1中的所有key值转化为大写,d1 = dict(a=1, b=2):

## 方法一: 通过定义一个新字典d_new, 然后利用字典的for循环遍历整个字典,然后将原字典改成符合题目中条件的字典:

d1 = dict(a=1, b=2)
print(d1)

d_new = {}
for i in d1:
    d_new[i.upper()] = d1[i]
print(d_new)

##  方法二: 利用字典生成式:

d_new = {}
# d2 = {d_new[i.upper()] = d1[i] for i in d1 }   ## 错误方式,留下反省!!!
d3 = {i.upper():v for i,v in d1.items()}
print(d3)

3. 将如下字典种的大小写key值合并,统一以小写输出:(将原字典中的大写的key值转化为小写,并将key值相同的项的):

d = dict(a=1, b=2, c=3, B=5, C=7, D=9)

方法一:

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)

方法二:  字典生成式的做法。          牛皮牛皮! 这得把字典用的非常熟,才能用出来。

new_d = {i.lower():d.get(i.lower(),0) + d.get(i.upper(),0) for i in d}
print(new_d)


4. 你还可以快速对换一个字典的键和值:

{v:k   for   k,v  in	some_dict.items()}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值