簡體   English   中英

如何從其他兩個字典生成字典?

[英]How to generate a dictionary from other two dictionaries?

如果

d1 = {'Mercury': 10, 'Venus': 20, 'Earth': 30, 'Mars': 40}

d2 = {'Ten': 'M', 'Twenty': 'V', 'Thirty': 'E', 'Forty': 'F'}

那么如何生成一個新的字典,其中鍵屬於d1,值屬於d2,類似於下面的字典:

newD = {'Mercury': 'M', 'Venus': 'V', 'Earth': 'E', 'Mars': 'F'}

如何通過理解、循環或任何其他方式來做到這一點?

謝謝。

如果關聯是基於順序的,您可以使用zip

>>> d1 = {'Mercury': 10, 'Venus': 20, 'Earth': 30, 'Mars': 40}
>>> d2 = {'Ten': 'M', 'Twenty': 'V', 'Thirty': 'E', 'Forty': 'F'}
>>> {k: v for k, v in zip(d1.keys(), d2.values())}
{'Mercury': 'M', 'Venus': 'V', 'Earth': 'E', 'Mars': 'F'}

如果你想基於10 -> 'Ten'等進行關聯, num2words應該可以工作:

>>> from num2words import num2words
>>> d1 = {'Mercury': 10, 'Venus': 20, 'Earth': 30, 'Mars': 40}
>>> d2 = {'Ten': 'M', 'Twenty': 'V', 'Thirty': 'E', 'Forty': 'F'}
>>> {k: d2[num2words(v).title()] for k, v in d1.items()}
{'Mercury': 'M', 'Venus': 'V', 'Earth': 'E', 'Mars': 'F'}

以下是如何使用zip()方法將 zip 的d1的鍵與d2的值結合起來:

d1 = {'Mercury': 10, 'Venus': 20, 'Earth': 30, 'Mars': 40}
d2 = {'Ten': 'M', 'Twenty': 'V', 'Thirty': 'E', 'Forty': 'F'}

newD = dict(zip(d1,d2.values()))
print(newD)

Output:

{'Mercury': 'M', 'Venus': 'V', 'Earth': 'E', 'Mars': 'F'}
{list(d1.keys())[k]:list(d2.values())[k] for k in range(len( d1.keys()) )}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM