Оптимизация кода, генерация списков и словарей
Вам нужно написать программу, которая принимает на вход 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]]
