Задать вопрос
@AlexMine
Учусь

Как правильно поступить если False == 0?

Здравствуйте, столкнулся с таким вопросом:
a = [False, True, 0, 1, 2, 3]
b = [a.pop(i) for i,v in enumerate(a) if v == 0]

print(b)
[False, 0]

Как правильно поступить, мне нужно только 0 из списка удалить, а получается так, что False python тоже при сравнении считает 0.
Как быть?
  • Вопрос задан
  • 166 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Решения вопроса 4
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Не нужно изменять итерируемый список. И не нужно изменять состояние во включениях.
b = [v for v in a if v is not 0]
Ответ написан
провести все к String и потом сделать проверку. не ?
Ответ написан
alternativshik
@alternativshik
1 вариант if v is 0
2 b = list(filter(lambda x: x is not 0, a))
Ответ написан
Комментировать
welcome32
@welcome32
Backend Python developer
Проверяйте тип объекта. Тип данных False - bool, а у 0 - int
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽