我的問題很簡單:我有一長串元素,我想要遍歷並檢查每個元素是否符合條件。根據條件的結果,我想刪除列表中的當前元素,並像往常一樣繼續迭代它。在迭代時從列表中刪除項目,而無需在Python中使用額外的內存
我已閱讀了有關此問題的其他一些線索。提出兩種解決方案。要麼從列表中創建一個字典(這意味着製作所有數據的副本,這些數據已經填滿了我的案例中的所有RAM)。要麼反過來列表(這打破了我想實現的算法的概念)。
有沒有比這更好或更優雅的方式來做到這一點?
def walk_list(list_of_g):
g_index = 0
while g_index < len(list_of_g):
g_current = list_of_g[g_index]
if subtle_condition(g_current):
list_of_g.pop(g_index)
else:
g_index = g_index + 1
所有這些的副本:http://stackoverflow.com/search?q=%5Bpython%5D+list+remove。具體http://stackoverflow.com/questions/1207406/remove-items-from-a-list-while-iterating-in-python – 2010-04-13 11:48:38
是的我在發佈我的問題之前仔細閱讀你鏈接到的其他線程。在另一個線索中提出的答案沒有一個解決我關心的問題。這是因爲我的問題有所不同,即複製列表被排除在外並且向後遍歷。 – xApple 2010-04-13 13:41:09