我正在尝试找到一种将值附加到列表中每个元组的方法。假设我有以下两个列表:
List_1:
[('xxx', 1), ('yyy', 2), ('zzz', 3), ('aaa', 1), ('fff', 4), ('bbb', 0)]
List_2:
['1', '3', '4', '20', '11', '15']
Desire outcome:
[('xxx', 1, '1'), ('yyy', 2, '3'), ('zzz', 3, '4'), ('aaa', 1, '20'), ('fff', 4, '11'), ('bbb', 0, '15')]
这是我的代码,
for y in List_1:
for x in List_2:
desire_list = [list(y) + [x] for y in List_1]
输出会将List_2中的每个单独的值添加到List_1中的每个元组
[[('xxx', 1, '1'), ('yyy', 2, '1'), ('zzz', 3, '1'), ('aaa', 1, '1'), ('fff', 4, '1'), ('bbb', 0, '1')]]
[[('xxx', 1, '3'), ('yyy', 2, '3'), ('zzz', 3, '3'), ('aaa', 1, '3'), ('fff', 4, '3'), ('bbb', 0, '3')]]
很明显,我没有正确执行此操作...我想知道这样做的正确方法是什么,如果我有多个列表想要像在List_2上一样尝试将值附加到List_1,该怎么办? ?例如:
List_2:['1', '3', '4', '20', '11', '15']
List_3 ['10', '20', '10', '210', '50', '150']
List_1 [('xxx', 1, '1', '10'), ('yyy', 2, '3', '20'), ('zzz', 3, '4', '10'), ('aaa', 1, '20', '210'), ('fff', 4, '11', '50'), ('bbb', 0, '15', '150')]
这是很简单的使用zip
和元组拆包:
>>> [ (x, y, z) for ((x, y), z) in zip(List_1, List_2) ]
[('xxx', 1, '1'), ('yyy', 2, '3'), ('zzz', 3, '4'), ('aaa', 1, '20'),
('fff', 4, '11'), ('bbb', 0, '15')]
您尝试的解决方案的问题在于您使用了嵌套循环,该循环循环访问from的一个元素List_1
和from的一个元素的所有组合List_2
。你不想要所有的对。您只需要“平行”对,其中一个列表中的每个元素与另一列表中相同索引处的元素配对。在这种情况下,请使用zip
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句