Python-значения нескольких списков в одном списковом понимании

Есть ли какой-нибудь умный способ написать понимание списка поверх более одного списка?

Я знаю, что могу использовать отдельный список диапазонов в качестве индекса, но таким образом мне нужно знать длину (или получить ее отдельно с помощью len()вызова функции).

>>> a = range(10)
>>> b = range(10, 0, -1)
>>> [(a[x],b[x]) for x in range(10)]
[(0, 10), (1, 9), (2, 8), (3, 7), (4, 6), (5, 5), (6, 4), (7, 3), (8, 2), (9, 1)]

Мне бы хотелось иметь что-то вроде этого.:

>>> [(a,b) for a in range(10) and b in range(10, 0, -1)]
[(0, 10), (1, 9), (2, 8), (3, 7), (4, 6), (5, 5), (6, 4), (7, 3), (8, 2), (9, 1)]

Как бы вы написали понимание списка? Есть ли способ сделать это с помощью itertools?

Список диапазонов просто означает любой список, и я не обязательно хочу получить кортеж. также может быть функция, которая принимает a и b в качестве параметров. Так что zip - это не то, что мне нужно.

ОБНОВЛЕНИЕ:С «Значит, zip — это не то, что мне нужно». Я имел в виду, что не хочуzip(range(10), range(10, 0, -1))

12
задан dominik 22 March 2012 в 22:22
поделиться