Откровенно говоря, это работает хорошо, и мне платят для записи этого. Это не запутано с маркетинговыми прихотями единственного поставщика, который управляет им. Меньше и меньше экспертов по C++ находятся на рынке, таким образом, мое значение увеличивается со временем. Я продолжу использовать его, пока рынок не станет неустойчивым.
Итерация по копии списка:
for c in colors[:]:
if c == 'green':
colors.remove(c)
Вы можете использовать функцию фильтрации:
>>> colors=['red', 'green', 'blue', 'purple']
>>> filter(lambda color: color != 'green', colors)
['red', 'blue', 'purple']
>>>
Лучший подход в Python - создать новый список, в идеале в listcomp, установив его как [:]
старого, например:
colors[:] = [c for c in colors if c != 'green']
НЕ colors =
, как можно предположить в некоторых ответах, - это только повторно связывает имя и в конечном итоге оставит некоторые ссылки на старое «тело» висящим; colors [:] =
НАМНОГО лучше по всем параметрам; -).
или вы также можете сделать это
>>> colors = ['red', 'green', 'blue', 'purple']
>>> if colors.__contains__('green'):
... colors.remove('green')