例如:
a = [('x',4),('y',1),('z',5)]
b = [6,2,3]
c = []
输出
c = [('x',4,6),('y',1,2),('z',5,3)]
我试过了:
for i in b:
for data in a:
x,y = data
c.append((x,y,i))
但我没有得到正确的结果。我得到了这个:
[('x', 4, 6), ('y', 1, 6), ('z', 5, 6), ('x', 4, 2), ('y', 1, 2), ('z', 5, 2), ('x', 4, 3), ('y', 1, 3), ('z', 5, 3)]
答案 0 :(得分:1)
使用zip()
function将a
和b
压缩在一起,并使用list comprehension生成新元组:
c = [a + (b,) for a, b in zip(a, b)]
演示:
>>> a = [('x',4),('y',1),('z',5)]
>>> b = [6,2,3]
>>> [a + (b,) for a, b in zip(a, b)]
[('x', 4, 6), ('y', 1, 2), ('z', 5, 3)]
您的代码创建了一个产品;对于b
中的每个单独元素,您添加了所有a
;这意味着您添加了所有预期输出 3次,而不只是一次。