python定义一个字典、存储雇员号和姓名_Python:在切换键和值时创建新字典

这段内容展示了如何使用Python的defaultdict来创建一个新的字典,其中科目作为键,学生姓名作为值。通过遍历原始字典,将每个学生分配到对应的科目列表或集合中。
摘要由CSDN通过智能技术生成

使用defaultdict,使每个集中的每个科目/值成为键,然后将每个学生追加/添加到列表/集中作为值.

s = {'Sherman':{'calculus', 'english'},

'Tyler': {'computers','history'},

'Kevin': {'chemistry','PE','geometry'},

'Joe': {'calculus','computers'},

'Bryan': {'nothing'},

'Steven': {'biology','research', 'algebra'}}

from collections import defaultdict

d = defaultdict(list)

for k,v in s.items(): # iterate over key/value tuples.

for sub in v: # get each subject in the set/value

d[sub].append(k) # add the students to a list and and make each subject a key

print(d)

defaultdict(, {'calculus': ['Sherman', 'Joe'], 'biology': ['Steven'], 'algebra': ['Steven'], 'geometry': ['Kevin'], 'computers': ['Tyler', 'Joe'], 'research': ['Steven'], 'english': ['Sherman'], 'nothing': ['Bryan'], 'chemistry': ['Kevin'], 'PE': ['Kevin'], 'history': ['Tyler']})

如果要将集合用作值,请使用defaultdict(set)和.add而不是append:

from collections import defaultdict

d = defaultdict(set)

for k,v in s.items():

for sub in v:

d[sub].add(k)

print(d)

defaultdict(, {'calculus': set(['Sherman', 'Joe']), 'biology': set(['Steven']), 'algebra': set(['Steven']), 'geometry': set(['Kevin']), 'computers': set(['Tyler', 'Joe']), 'research': set(['Steven']), 'english': set(['Sherman']), 'nothing': set(['Bryan']), 'chemistry': set(['Kevin']), 'PE': set(['Kevin']), 'history': set(['Tyler'])})

使用defaultdict意味着如果dict中不存在键,它将被添加,并且如果该键已经存在,则追加值或仅追加值,您可以使用dict.setdefault,但是defaultdict更有效.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值