[英]How to get a all combinations of two dictionnaries to make a new one in Python
我想獲得兩個詞典的所有組合以獲得一個新的:
d1={'a':1.2,'b':1.5,'c':1.3}
d1={'a':2,'b':1,'c':2}
進入:
d={('a','a'):2.4,('a','b'):1.2,('a','c'):2.4,...}
其中新鍵將是首字母字典的組合,例如:( ('a','a')
新值將是先前值的乘積,例如: 1.2 * 2 = 2.4
假設您想要值的乘積,您可以使用:
d1={'a':1.2,'b':1.5,'c':1.3}
d2={'a':2,'b':1,'c':2}
from itertools import product
out = {k: d1[k[0]]*d2[k[1]] for k in product(d1, d2)}
# or
out = {(k1, k2): d1[k1]*d2[k2] for k1, k2 in product(d1, d2)}
任意數量詞典的通用答案:
from itertools import product
from math import prod
dicts = [d1, d2]
out = {k: prod(d[key] for key,d in zip(k,dicts))
for k in product(*dicts)}
Output:
{('a', 'a'): 2.4,
('a', 'b'): 1.2,
('a', 'c'): 2.4,
('b', 'a'): 3.0,
('b', 'b'): 1.5,
('b', 'c'): 3.0,
('c', 'a'): 2.6,
('c', 'b'): 1.3,
('c', 'c'): 2.6}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.