[英]Extract key1:value1 from dictionary 1 and key1:value1 from dictionary 2, assign them to 4 different variables, loop
[英]Efficient way to get from {key1: [value1, value2...]} to {value1: [key1, key2...]}
假设我有一本这样的字典:
animals_dict =
{'cat': ['black', 'white', 'orange'],
'dog': ['black', 'white'],
'parrot': ['orange', 'green']}
我想得到这个:
colors_dict =
{'black': ['cat', 'dog'],
'white': ['cat', 'dog'],
'orange': ['cat', 'parrot'],
'green': ['parrot']}
显而易见的方法是循环遍历animals_dict中的每一个动物; 循环通过它的每一种颜色; 并将动物添加到 colors_dict 中的该颜色。 但是,如果你有数千万只动物,而每只动物最多可以有一百种颜色,那么这将在计算上变得昂贵。 有没有更有效的方法来实现这一目标?
index = {'cat': ['black', 'white', 'orange'],'dog': ['black', 'white'],'parrot': ['orange', 'green']}
new_dic = {}
for k,v in index.items():
for x in v:
new_dic.setdefault(x,[]).append(k)
print(new_dic)
这给
{
'black': ['cat', 'dog'],
'white': ['cat', 'dog'],
'orange': ['cat', 'parrot'],
'green': ['parrot']
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.