Оптимизация кода, генерация списков и словарей

Вам нужно написать программу, которая принимает на вход 10 чисел и генерирует два списка. Один с четными числами, второй с нечетными.

def generator(*args):
    a = list(args)

    b = [i for i in a if a[i] % 2 == 0 ]
    return b

print(generator(1, 11, 23, 432, 5432, 6543, 213, 1234, 432, 9))

ошибка


Ответы (2 шт):

Автор решения: floydpower

В данном случае программа не понимает, к какому индексу вы обращаетесь, потому что списка попросту нет.

Проблема решается таким способом:

b = [i for i in a if i % 2 == 0 ]
→ Ссылка
Автор решения: Алексей Р

Можно также использовать filter

def generator(*args):
    return [list(filter(lambda x: x % 2 == i, args)) for i in range(2)]

print(generator(1, 11, 23, 432, 5432, 6543, 213, 1234, 432, 9))
[[432, 5432, 1234, 432], [1, 11, 23, 6543, 213, 9]]
→ Ссылка