我正在使用 python 做一個大的 OOP,我有一個問題,我不能將兩個以上的串列附加到一個串列中。
這個簡單的問題可能會解決問題:
我有三個串列first,
我想將三個串列附加到串列中并second生成串列 3 次,串列將有一個新的元素序列。thirdbiggersecondbigger
bigger = []
first = [1,2,3,4]
for l in first:
bigger.append(l)
second = [1,2,3,4,5]
for m in second:
for i in range(3):
bigger.append(m i)
third = [1,2,3]
for n in third:
bigger.append(n)
print(bigger)
輸出:
[1, 2, 3, 4, 1, 2, 3, 2, 3, 4, 3, 4, 5, 4, 5, 6, 5, 6, 7, 1, 2, 3]
所需的輸出:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
我希望你能關注我!
uj5u.com熱心網友回復:
您只需要存盤bigger到目前為止的最后一個元素并將其添加到元素中second并third在附加它們時添加它們。second此外,在;中附加元素時,回圈的順序是錯誤的。內回圈應該結束second。
您還提到您希望bigger逐個元素附加到元素,但串列具有extend可以bigger由另一個串列擴展的方法。
bigger = []
first = [1,2,3,4]
for l in first:
bigger.append(l)
second = [1,2,3,4,5]
for i in range(3):
# track the last element
last = bigger[-1]
for m in second:
# add the last here
bigger.append(m last)
third = [1,2,3]
# track the last
last = bigger[-1]
for n in third:
# add the last here
bigger.append(n last)
print(bigger)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
uj5u.com熱心網友回復:
我不確定你真正想要什么。要獲得所需的輸出,只需執行以下操作:
list(range(1, 23))
否則,要使用您描述的程序構建bigger串列,這應該有效:
bigger = [*first, *(second * 3), *third]
重復串列的second * 3三倍second。每個*串列前面的 解包值并將它們一起放入bigger串列中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/489517.html
