簡體   English   中英

如何合並Python中同一索引處的兩個列表的元素?

[英]How to merge elements of two lists at the same index in Python?

我是 python 的新手,我剛剛開始。 所以我試圖將兩個列表合並到一個大列表中。 輸入:

A = [[a,1],[b,2],[c,3]]
B = [10,20,30]

所需的 output:

c = [[a,1,10],[b,2,20],[c,3,30]]

我嘗試了插入方法,但它沒有在 A 列表中的每個單獨列表中添加 B 元素,我嘗試c.extend([a,b])但它給了我這個:

[10,[a,1],20,[b,2],30,[c,3]]

似乎是什么問題,因為我真的很困惑。 謝謝

如果您希望c獨立於a ,則需要使用標准庫copy.deepcopy或手動編碼進行深層復制:

c = [ai[:] for ai in a]

然后使用b中的相應值擴展c中的每個元素列表:

for ci, bi in zip(c,b):
    ci.append(bi)

它確實依賴於您所說明的結構: a 的每個元素都是a列表, b的每個元素都是一個值。

如果您只是說c=ac=a.copy()開始, a中的列表也會受到append操作的影響。

一種方法是zip輸入列表,然后添加它們:

a = [['a', 1], ['b', 2], ['c', 3]]
b = [10, 20, 30]

c = [x+[y] for x, y in zip(a, b)]
print(c)  # -> [['a', 1, 10], ['b', 2, 20], ['c', 3, 30]]

如果你總是在第一個變量中有一個列表列表,並且在第二個變量中有一個數字列表,字符......你可以使用這個代碼:

a = [["a",1],["b",2],["c",3]]
b = [10,20,30]

def mergeLists(e,f):
    counter = 0
    for i in e:
        i.append(f[counter])
#add this line : 
mergeLists(a,b)

現在如果你打印 a 你會得到: a=[['a', 1, 10], ['b', 2, 10], ['c', 3, 10]]這段代碼的作用是遍歷列出 e 並添加 f 的每個項目,注意列表必須具有相同的長度

請注意,如果您只想使用 a 和 b 直接使用for i, j in zip(a, b): i.append(j)

暫無
暫無

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

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