好的,我有一本看起来像这样的字典
z = {'J': 50, 'Q': 30, 'F': 10)
一个看起来像这样的列表
l = [('J', 20), ('Q', 10), ('F', 2)]
如何在保持原始列表排序的同时将这些组合成字典或列表?我想要一些看起来像
的东西l = [('J', 20, 50), ('Q', 10, 30), ('F', 2, 10)]
感谢您的帮助!
答案 0 :(得分:6)
z = {'J': 50, 'Q': 30, 'F': 10}
l = [('J', 20), ('Q', 10), ('F', 2)]
print [(a, b, z[a]) for a, b in l]
给出:
[('J', 20, 50), ('Q', 10, 30), ('F', 2, 10)]
最好不要列出您的列表l
。来自PEP 8:
要避免的名称
永远不要使用字符'l'(小写字母el),'O'(大写字母 字母哦),或'我'(大写字母眼睛)作为单个字符变量 名。
在某些字体中,这些字符与数字无法区分 一,零。当试图使用'l'时,请使用'L'。
答案 1 :(得分:0)
有关元组列表,您可以这样做:
[item + (z[item[0]],) for item in l]
请注意,z[item[0]]
假设item[0]
中始终存在密钥z
。
对于词典,请尝试
dict((item[0], (item[1], z[item[0]])) for item in l)
答案 2 :(得分:0)
改善jena的答案,允许列表中缺少某些项目:
>>> l = [('J', 20), ('Q', 10), ('F', 2), ('A', 5)]
>>> [x + (z.get(x[0]),) for x in l]
[('J', 20, 50), ('Q', 10, 30), ('F', 2, 10), ('A', 5, None)]