如何合并2个字典,其中的值是具有相同键的字符串

问题描述 投票:0回答:3

我有2本字典

gen1 = {0: 'RR', 1: 'RR', 2: 'rR', 3: 'rR', 4: 'RR', 5: 'RR', 6: 'rR', 7: 'rR', 8: 'Rr', 9: 'Rr', 10: 'rr', 11: 'rr', 12: 'Rr', 13: 'Rr', 14: 'rr', 15: 'rr'}

gen2 = {0: 'PP', 1: 'PP', 2: 'PP', 3: 'PP', 4: 'PP', 5: 'PP', 6: 'PP', 7: 'PP', 8: 'PP', 9: 'PP', 10: 'PP', 11: 'PP', 12: 'PP', 13: 'PP', 14: 'PP', 15: 'PP'}

我想用相同的键将它们连在一起

gen3 = {0: 'RRPP', 1: 'RRPP', 2: 'rRPP', 3: 'rRPP', 4: 'RRPP', 5: 'RRPP', 6: 'rRPP', 7: 'rRPP', 8: 'RrPP', 9: 'RrPP', 10: 'rrPP', 11: 'rrPP', 12: 'RrPP', 13: 'RrPP', 14: 'rrPP', 15: 'rrPP'}
python dictionary join concat
3个回答
0
投票

您可以使用字典理解:

{k:f'{v}{gen2.get(k, "")}' for k,v in gen1.items()}

{0: 'RRPP', 1: 'RRPP', 2: 'rRPP', 3: 'rRPP', 4: 'RRPP', 5: 'RRPP', 6: 'rRPP', 
 7: 'rRPP', 8: 'RrPP', 9: 'RrPP', 10: 'rrPP', 11: 'rrPP', 12: 'RrPP', 13: 'RrPP', 
 14: 'rrPP', 15: 'rrPP'}

0
投票

dict理解-与@yatu的回答略有不同。这将对gen1和gen2的所有唯一键都起作用-如果某个键仅存在于一个词典中,则所得字典将仅具有相应gen字典中的值。

>>> gen1 = {0: 'RR', 1: 'RR', 2: 'rR', 3: 'rR', 4: 'RR', 5: 'RR', 6: 'rR', 7: 'rR', 8: 'Rr', 9: 'Rr', 10: 'rr', 11: 'rr', 12: 'Rr', 13: 'Rr', 14: 'rr', 15: 'rr'}
>>> gen2 = {0: 'PP', 1: 'PP', 2: 'PP', 3: 'PP', 4: 'PP', 5: 'PP', 6: 'PP', 7: 'PP', 8: 'PP', 9: 'PP', 10: 'PP', 11: 'PP', 12: 'PP', 13: 'PP', 14: 'PP', 15: 'PP'}
>>> {k: gen1.get(k) + gen2.get(k) for k in set(list(gen1.keys()) + list(gen2.keys()))}
{0: 'RRPP',
 1: 'RRPP',
 2: 'rRPP',
 3: 'rRPP',
 4: 'RRPP',
 5: 'RRPP',
 6: 'rRPP',
 7: 'rRPP',
 8: 'RrPP',
 9: 'RrPP',
 10: 'rrPP',
 11: 'rrPP',
 12: 'RrPP',
 13: 'RrPP',
 14: 'rrPP',
 15: 'rrPP'}

0
投票

如果您确定gen1gen2具有完全相同的键,这应该起作用:

gen3 = { k: gen1[k] + gen2[k] for k in gen1 }
© www.soinside.com 2019 - 2024. All rights reserved.