對以下串列進行映像:
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 個?
uj5u.com熱心網友回復:
您可以使用簡單的串列理解:
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)]
uj5u.com熱心網友回復:
使用串列理解,我們可以嘗試:
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']
uj5u.com熱心網友回復:
如果每個串列的長度是固定的并且長度相同,您可以簡單地按索引回圈,連接它們,然后一一推入結果陣列。
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]}')
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/354271.html
上一篇:陣列中的值得到改變但他們不應該
下一篇:c 3d陣列函式回傳
