如何反转按公用值分组的字典项和列表键

Este7734:

我有一本字典,希望按常用值进行分组:

init_dict = {'00001': 'string1', '00002': 'string2', '00003': 'string1', '00004': 'string3', '00005': 'string2'}

我想创建一个新字典,将值分组并列出如下键:

new_dict = {'string1': ['00001', '00003'], 'string2':['00002', '00004'], 'string3': ['00004']}

我尝试了很多事情,这是我能得到的最接近的东西。

lookup = 'string1'
all_keys = []
for k, v in init_dict.items():
  if v == lookup:
    all_keys.append(k)
print(all_keys)

这产生了第一个列表:['00001', '00003']所以我认为我可以以某种方式遍历lookup列表,但是由于正在使用字符串,所以无法。有没有办法做到这一点,有没有一种比较有效的办法,因为我的初始词典中有53,000项。任何帮助将不胜感激,因为我已经尝试了数小时的不同尝试。

yatu:

使用defaultdict,指定a list作为默认参数,并附加字典中的相应值:

from collections import defaultdict

d =  defaultdict(list)
for k,v in init_dict.items():
    d[v].append(k)

print(d)

defaultdict(list,
            {'string1': ['00001', '00003'],
             'string2': ['00002', '00005'],
             'string3': ['00004']})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

按多个键分组并汇总/平均字典列表的多个值

按字典值排序的集合列表和按名称分组

如何在字典列表中分组和添加字典键

如何按字典中的键分组并总结python中的值?

如何根据字典键和列表值对数据进行分组?

如何从键列表和值列表创建字典列表

如何按值从字典列表中获取键

如何使用一个键升序和一个键降序按值对嵌套列表的字典进行排序?

如何快速从键列表和列表值构建python字典?

如何从键列表和相同值生成字典列表

如何通过列表理解检索字典的键和值列表?

如何在Python中的字典项列表中按值删除重复的字典项

迭代字典中的值以反转键和值

如何按值分组列表?

如何从python字典列表中提取重复的键和值?

如何合并具有键和值的字典列表

如何通过键和值过滤字典中的列表?

如何打印Python列表中包含的字典的键和值

如何遍历特定键的字典列表和打印值?

通过其特定键将列表中的字典项分组

如何使用单个键:值对从字典项列表中提取一项?

Python:如何按值和索引对字典列表进行排序

如何使用字典列表中的列表和字典理解来添加键和值?

按值和键长对字典排序

Python在字典列表中按多个键分组

当每个字典具有不同的键时,如何按值对字典列表进行排序?

字典按值分组

如何在python3中按姓氏对全名字典键进行排序和分组?

如何通过使用列表的索引作为键和列表的项作为值来将列表添加到字典中?