我想通過週期性地擴展輸入中給出的列表來構建一些列表(a,b,c,d)。Python切片命令被遺忘出循環
週期性的結構是這樣的,每個列表的第一元件必須不被重複,而所有其他的元素必須是直到達到最大長度在輸入設定(它是可能的期間,不得到被重複整數次)。
舉個例子,如果我有作爲輸入
a = [1, 2, 3, 4] max_len=11
欲獲得作爲輸出
a = [1, 2, 3, 4, 2, 3, 4, 2, 3, 4, 2]
我寫這段代碼:
for mylist in [a, b, c d]:
period = mylist[1:] # all elements but the first are repeated
while len(mylist)< max_len:
mylist.extend(period)
mylist = mylist[:max_len] # cut to max_len
print mylist
print a, b, c, d
如果我運行這個,我從兩個打印命令中看到,我的列表是我希望它們在程序仍處於循環中時的狀態,但它們會得到b ACK給「非切片」時長圈外,也就是一個回來的長度大於其中週期僅重複4次MAX_LEN:
a = [1, 2, 3, 4, 2, 3, 4, 2, 3, 4, 2, 3, 4]
這是爲什麼?它看起來像程序忘記了切片(但不是擴展名)。
我知道這是一個非常簡單的問題,我可以用其他方式解決它,但我想了解爲什麼這個想法不起作用。 謝謝你的幫助!