在迭代期間從列表中刪除元素
在Python 中迭代列表時,了解如何刪除滿足特定條件的項目非常重要標準。但是,嘗試在迭代時修改清單可能會引發問題。
困境
考慮以下程式碼區塊:
for tup in somelist: if determine(tup): # How do I remove 'tup' here?
如何您從清單中刪除 tup,同時保留迭代器?
解
這個問題有幾個解決方案:
1.列表理解
somelist = [x for x in somelist if not determine(x)]
1.列表理解
此方法建立一個新列表,僅包含不需要刪除的元素。
somelist[:] = [x for x in somelist if not determine(x)]
2.切片分配
此分配會將現有清單變更為僅包含所需的元素。
from itertools import filterfalse somelist[:] = filterfalse(determine, somelist)
3. Itertools
此方法使用Python的filterfalse函數過濾掉不需要的元素。
以上是在 Python 中迭代時如何安全地從列表中刪除元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!