![](/img/trans.png)
[英]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.