簡體   English   中英

將一個列表中的每個項目添加到另一個列表中的每個項目到第三個列表

[英]Adding each item from one list to each item from another list to third list

想象以下列表:

A = [1,2,3,4]
B = ['A','B','C','D']
C = [10,11,12,13]
D = [100,200,300,400]

我應該得到以下結果: Z = ['1A10100', '2B11200', '3C12300', '4D13400']

我可以使用很多空數組來做到這一點,首先對 A 和 B 使用 for 循環,而不是使用這個新列表並為每個 i 附加 C,等等。

問題是,這能否以更智能的方式完成。 在我的真實情況下,列表是 6?

您可以使用簡單的列表推導:

Z = [''.join(str(x) for x in l) for l in zip(A,B,C,D)]

輸出: ['1A10100', '2B11200', '3C12300', '4D13400']

如果您的列表已經有一個容器:

lists = [A,B,C,D]
[''.join(str(x) for x in l) for l in zip(*lists)]

使用列表推導,我們可以嘗試:

A = [1,2,3,4]
B = ['A','B','C','D']
C = [10,11,12,13]
D = [100,200,300,400]

nums = list(range(0, len(A)))
Z = [str(A[i]) + B[i] + str(C[i]) + str(D[i]) for i in nums]
print(Z)  # ['1A10100', '2B11200', '3C12300', '4D13400']

如果每個列表的長度是固定的且長度相同,您可以簡單地按索引循環,將它們連接起來,然后將它們一一推送到結果數組中。

A = [1,2,3,4]
B = ['A','B','C','D']
C = [10,11,12,13]
D = [100,200,300,400]

# Prepare the empty array
result = []

# Concat and insert one-by-one
for i in range(len(A)):
    result.append('{}{}{}{}'.format(A[i], B[i], C[i], D[i]))
    
print(result)

輸出:

['1A10100', '2B11200', '3C12300', '4D13400']

除了上面的代碼之外,還有另一種連接和插入結果數組的方法:

  • 您可以在插入之前分配一個臨時變量進行連接:
for i in range(len(A)):
    tmp = str(A[i]) + B[i] + str(C[i]) + str(D[i])
    result.append(tmp)
  • 或者您可以通過這種方式將變量放在內部大括號中
for i in range(len(A)):
    result.append(f'{A[i]}{B[i]}{C[i]}{D[i]}')

暫無
暫無

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

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