2015-05-28 48 views
4

我有一個嵌套列表A = [[1, 2, 3], [5, 2, 7], [4, 8, 9]]。我想在list A中添加1, 2, 3的數字爲A = [[1, 2, 3, 1], [5, 2, 7, 2], [4, 8, 9, 3]]等等(這只是一個較短的版本)。我試過用相同我寫的代碼:將特定整數附加到嵌套列表 - Python

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。

+0

開始沒有必要的'範圍(0,number_nests)','0'是'range'.So默認'start'簡單'範圍(number_nests)' – itzMEonTV

回答

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

簡單地遍歷外列表與索引一起使用enumerate

for i, elem_list in enumerate(A, start=1): 
    elem_list.append(i) 
3

可以使用enumerate內置函數啓動參數爲1獲得當前索引。

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

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

使用map內置功能

在蟒蛇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)))) 
-1

你只需要一個循環來在01中爲每個列表添加一個數字:

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

注:範圍應在1

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]]