[英]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=a
或c=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.