我已经阅读了关于Stackoverflow上的非展平列表的所有文章,但是找不到解决我问题的方法。
我有两个列表,我想将list2中的一个元素添加到list1中的每个元素。
l1 = [[1,2],[3,4]]
l2 = [5, 7]
我追求的结果是
[[1, 2, 5], [3, 4, 6]]
我已经尝试过此代码
for i in range(len(l2)):
l1[i].extend(l2[i])
print(l1)
但返回错误“ TypeError:'int'对象不可迭代”
当l2的每个元素本身都是列表时,例如l2 = [[5],[7]]
我的代码工作正常。这是为什么?以及当l2的格式为l2 = [5, 7]
答案 0 :(得分:1)
list1.extend(list2)
用于创建list1+list2
。但是您没有提供list2
,它只是一个元素。正确的功能是list1.append(element2)
,它与list1+[element2]
答案 1 :(得分:1)
使用zip()
并行遍历两个或多个对象。在不需要索引时使用range()
进行索引是非Python的。
xss = [[1,2],[3,4]]
ys = [5,7]
for xs, y in zip(xss, ys):
xs.append(y)
print(xss)
[[1, 2, 5], [3, 4, 7]]
答案 2 :(得分:-1)
l1 = [[1,2],[3,4]]
l2 = [5, 7]
for i in range(len(l2)):
l1[i].append(l2[i]);
print(l1)
[[1、2、5],[3、4、7]]
Extend is for objects.
Append is what you need here.