最近有人问我关于在迭代列表时更改列表的错误。他们提出了以下场景(我现在已经更新了一个更好的例子)作为可能的用例,当行为可能是可取的:
>>> jersey_numbers = [4, 2, 3, 5, 1] # list of places in a race
>>> for jersey_number in jersey_numbers:
if jersey_number == 2: # disqualify jersey number 2 for a false start
t.remove(jersey_number)
>>> t
[4, 3, 5, 1] # jersey number 3 is now in second place
这种行为是否足够规律,可以在这样的用例中使用?