将列表元素附加到python

时间:2017-07-13 13:26:01

标签: python list python-3.x append

鉴于以下清单:

list1 = [[1, 2],
         [3, 4],
         [5, 6],
         [7, 8]]
list2 = [10, 11, 12, 13]

更改list1的最佳方法是什么,以便它成为python中的以下列表?

[[1, 2, 10],
 [3, 4, 11],
 [5, 6, 12],
 [7, 8, 13]]

3 个答案:

答案 0 :(得分:7)

您可以使用zip

[x + [y] for x, y in zip(list1, list2)]
# [[1, 2, 10], [3, 4, 11], [5, 6, 12], [7, 8, 13]]

要修改list1,您可以这样做:

for x, y in zip(list1, list2):
    x.append(y)

list1
# [[1, 2, 10], [3, 4, 11], [5, 6, 12], [7, 8, 13]]

答案 1 :(得分:5)

或者,在zip之后,如果您正在使用Python> = 3.5,则需要解压缩:

>>> l = [[*i, j] for i,j in zip(list1, list2)]
>>> print(l)
[[1, 2, 10], [3, 4, 11], [5, 6, 12], [7, 8, 13]]

当然,如果列表大小可能不同,那么最好使用zip_longest from itertools来优雅地处理额外的元素。

答案 2 :(得分:0)

你可以这样做:

for i in range(len(list1)):
    list1[i] += [list2[i]]

print(list1)
  

输出

[[1, 2, 10], [3, 4, 11], [5, 6, 12], [7, 8, 13]]