當我需要根據某些條件從清單的兩端刪除幾個元素時,遇到了一些問題。例如,假設我想從列表的兩端刪除元素,只要遇到第一個0(包括前0),就從位置q
開始。基於條件的切割清單尾部
例子:
mylist = [1,1,0,1,0,1,2,3,1,5,1,3,1,0,2]
應該變成:
[1,2,3,1,5,1,3,1]
,如果我們採取q
爲7。所以,我們去7元,開始去左邊,並用第一0遇到我們請記住索引i0
並將其關閉mylist = mylist[i0+1:]
。重複右側的相同步驟。
使用這個邏輯,我完成了兩個循環,完全如上所述。但似乎有點複雜。有沒有更簡單的方法來處理這樣的任務?
它爲什麼複雜?任何答案都必須做相當於遍歷數值和檢查這些位置的零點。我沒有看到答案會如何改善你已有的代碼。 –
@SimeonVisser大概是因爲以前的解決方案暗示需要兩個完整的迭代?我認爲懶惰地評估條件只有清單的相關部分是合理的改進,但絕對不是驚天動地。 –
@SimeonVisser通過縮短代碼明智:) – sashkello