Генератор списка списков и сложение i+j элементов
У меня есть код, который генерирует список списков:
n = [[(i/j) for j in range (1,5)] for i in range (1,5)]
Вывод:
[[1.0, 0,5, 0.33333333333, 0,25],
[2.0, 1.0, 0.66666666666, 0.5],
[3.0, 1.5, 1.0, 0.75],
[4.0, 2.0, 1.33333333333, 1.0]]
Как итерировать этот список списков с помощью генератора, чтобы если i+j четное, то возвращаем число без изменений, если нет, то с минусом?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
воспользуйтесь тернарным оператором:
n = [[i/j if (i+j) % 2 == 0 else -i/j
for j in range (1,5)]
for i in range (1,5)]
результат:
In [285]: n
Out[285]:
[[1.0, -0.5, 0.3333333333333333, -0.25],
[-2.0, 1.0, -0.6666666666666666, 0.5],
[3.0, -1.5, 1.0, -0.75],
[-4.0, 2.0, -1.3333333333333333, 1.0]]