您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

将Python字典键分组为一个列表,并使用该列表作为值创建一个新字典

将Python字典键分组为一个列表,并使用该列表作为值创建一个新字典

collections.defaultdict轻松使用:

from collections import defaultdict

v = defaultdict(list)

for key, value in sorted(d.items()):
    v[value].append(key)

但您也可以使用bog- standard来执行此dict操作dict.setdefault()

v = {}

for key, value in sorted(d.items()):
    v.setdefault(value, []).append(key)

上面 首先对 键进行排序; 稍后对输出字典的值进行排序更加麻烦且效率低下。

如果任何人 都不 需要对输出进行排序,则可以放弃sorted()呼叫并使用 集合 (输入字典中的键保证是唯一的,因此不会丢失任何信息):

v = {}

for key, value in d.items():
    v.setdefault(value, set()).add(key)

生产:

{6: {1}, 1: {2, 3, 6}, 9: {4, 5}}

(对设置值的输出进行排序是一个巧合,是如何实现整数的哈希值的副作用;集合是无序结构)。

python 2022/1/1 18:38:24 有391人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶