簡體   English   中英

將特定整數附加到嵌套列表 - Python

[英]Appending specific integers to nested lists - Python

我有一個嵌套列表, 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]]和等等(這只是一個較短的版本)。 我嘗試使用我寫的代碼:

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]] 1,90,150,0,1,2,3 [[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這樣做。

使用enumerate簡單地遍歷外部列表和索引:

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

您可以使用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))))
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]]

您只需要一個循環就可以為A每個列表添加一個數字:

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

注意:范圍應從1開始

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM