¿Hay alguna forma inteligente de escribir una lista de comprensión en más de una lista?Valores de Python de listas múltiples en una comprensión de lista
Sé que podría usar una lista de rango separada como índice, pero de esta manera tengo que saber la longitud (u obtenerla por separado con una llamada a la función 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)]
Me gustaría tener algo como esto:
>>> [(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)]
¿Cómo escribirías la lista por comprensión? ¿Hay alguna manera de hacer esto con itertools?
La lista de rango solo representa cualquier lista y no necesariamente quiero obtener una tupla. también podría haber una función que toma a y b como parámetros. Entonces zip no es lo que quiero.
ACTUALIZACIÓN: Con "Así que zip no es lo que quiero". Quiero decir que no quiero zip(range(10), range(10, 0, -1))
Duplicado de [9184497] (http://stackoverflow.com/questions/9184497/python-list-comprehension-function-with- arguments-in-two-lists)? – quazgar