将特定整数附加到嵌套列表 - Python

时间:2015-05-28 07:06:05

标签: python list python-3.x nested append

我有一个嵌套列表,A = [[1, 2, 3], [5, 2, 7], [4, 8, 9]]。我想将1, 2, 3中的数字list A添加为A = [[1, 2, 3, 1], [5, 2, 7, 2], [4, 8, 9, 3]]等等(这只是一个较短的版本)。我使用我写的代码尝试了同样的事情:

i = 0
j = 0
#number_nests = number of nested lists
for i in range(0, number_nests):
    for j in A:
        j.append(i)

print(A)

这是我得到的输出,因为我是新手,我有点卡住: [[1, 90, 150, 0, 1, 2, 3], [2, 100, 200, 0, 1, 2, 3], [4, 105, 145, 0, 1, 2, 3], [3, 110, 190, 0, 1, 2, 3]]。我试图在没有numpy的情况下做到这一点。

5 个答案:

答案 0 :(得分:3)

使用enumerate

简单地遍历外部列表和索引
for i, elem_list in enumerate(A, start=1):
    elem_list.append(i)

答案 1 :(得分:3)

A = [[1, 2, 3], [5, 2, 7], [4, 8, 9]]
i=1
for val in A:
    val.append(i)
    i += 1

答案 2 :(得分:3)

您可以将enumerate内置函数与start参数用作1来获取当前索引。

A = [[1, 2, 3], [5, 2, 7], [4, 8, 9]]

print([val+[i] for i, val in enumerate(A, 1)])

使用map内置功能

在python 2.x

print map(lambda x,y: x+[y],  A, range(1, len(A)+1))

在python 3.x

print(list(map(lambda x,y: x+[y], A, range(1, len(A)+1))))

答案 3 :(得分:1)

A = [[1, 2, 3], [5, 2, 7], [4, 8, 9]]
B = [1, 2, 3]
print [A[i]+[B[i]] for i in range(len(A))]
#Output[[1, 2, 3, 1], [5, 2, 7, 2], [4, 8, 9, 3]]

答案 4 :(得分:-1)

您只需要一个循环就可以为A中的每个列表添加一个数字:

for i in range(1, len(A)+1):
    A[i].append(i)

注意:范围应从1开始