Python:在切换键和值时创建新字典
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python:在切换键和值时创建新字典,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1713字,纯文字阅读大概需要3分钟。
内容图文
![Python:在切换键和值时创建新字典](/upload/InfoBanner/zyjiaocheng/680/57c8938e706a48389f5a577cfefd32c5.jpg)
如果给我一本以学生姓名作为关键词,而他们精通的主题是一组字符串的字典,那么我将如何创建一个新的字典,以该主题为关键词,而精通这些主题的每个人一套?
抱歉,这是我第一次在这里提出问题,所以我不太确定如何包含函数摘要.
解决方法:
使用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(<type 'list'>, {'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(<type 'set'>, {'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更有效.
内容总结
以上是互联网集市为您收集整理的Python:在切换键和值时创建新字典全部内容,希望文章能够帮你解决Python:在切换键和值时创建新字典所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。