0
我想使用forloop刪除某些符合條件的元素。奇怪的問題,該元素不會從列表中刪除
name_list = ["Win-0.3.4-x86_64", "CentOS7.1"]
for name in name_list:
if "snapshot" not in name:
name_list.remove(name)
print name_list # there print ['CentOS7.1']
但最後,它並沒有刪除所有滿足條件的元素。
因爲,你修改了列表,所以尺寸縮小。不要這樣做。 –
如果您正在修改正在迭代的內容,則正常的迭代將不正確。 –
從您正在迭代的列表中刪除項目就像鋸掉您正在坐的樹枝。如果你在錯誤的一面看到壞事發生。 ;)如果你反向遍歷它,你可以安全地從列表中移除項目,但是通常只是簡單地迭代並建立一個新列表。 –