Python — как удалить из списка кортеж

Admin Python

Удаление одного или нескольких значений кортежей из списка в Python.

Имеем список (list) из кортежей (tuple):

[(1598900760, 0),
(1598900820, 9052),
(1598900880, 4866),
(1598900940, 3742),
(1598901240, None),
(1598901297, 0)]

Удалим отсюда все что является нулем или None.

for price in prices:
    if price[1] == 0:
        prices.remove(price)

for price in prices:
    if price[1] is None:
        prices.remove(price)

Получим

[(1598900820, 9052),
(1598900880, 4866),
(1598900940, 3742)]

Казалось бы, можно объединить в один цикл:

for price in prices:
    if price[1] == 0 or price[1] is None:
        prices.remove(price)

Но нет, в этом случае будет что-то вроде (не удалилось последнее значение):

[(1598900820, 9052),
(1598900880, 4866),
(1598900940, 3742),
(1598901297, 0)]

Видимо это связано с особенностью создания объектов в python.

У сайта нет цели самоокупаться, поэтому на сайте нет рекламы. Но если вам пригодилась информация, можете лайкнуть страницу, оставить комментарий или отправить мне подарок на чашечку кофе.

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"Python — как удалить из списка кортеж"