我有一本字典,希望按常用值进行分组:
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项。任何帮助将不胜感激,因为我已经尝试了数小时的不同尝试。
使用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] 删除。
我来说两句