@P4sh4R

Что со списками не так?

Код должен переносить четные цифры в другой список, но почему-то код работает рандомным образом и какие-то цифры переносит, а какие-то нет.
Код- https://ideone.com/fork/hW4nSm
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
@molekulyarniy
вы удаляете четное число из list1, и list1 становится короче. Так вы пропускаете числа по некоторым индексам.

Допустим, ввели числа 1 2 4 5. Цикл for i in list1: доходит до второго элемента - число 2. Это четное число, и оно удаляется из list1. На его место (на вторую позицию) становится число 4. Но вторая позиция уже пройдена циклом, поэтому 4 не проверяется на четность.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@alegzz
так не лучш?е
amount = int(input('Введите количество дней'))
list1 = [int(i) for i in input('Введите дни через пробел').split()]
evens = [i for i in list1 if i % 2 == 0]
odds = [i for i in list1 if i % 2 == 1]
print(evens)
print(odds)
Ответ написан
@zexer
def is_odd(value):
    return value % 2 == 0


raw_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
odd_list = [i for i in raw_list if is_odd(i)]
not_odd_list = [i for i in raw_list if not is_odd(i)]
print(odd_list)
print(not_odd_list)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Сбер Санкт-Петербург
от 100 000 до 100 000 ₽
Ovision Санкт-Петербург
от 100 000 до 300 000 ₽
11 мая 2021, в 07:43
2500 руб./за проект
11 мая 2021, в 07:41
35000 руб./за проект
11 мая 2021, в 06:08
10000 руб./за проект