Articles of list comprension

Listar la comprensión como sustituto de reduce () en Python

El siguiente tutorial de Python dice que: La comprensión de lista es un sustituto completo de la función lambda, así como de las funciones map() , filter() y reduce() . http://python-course.eu/python3_list_comprehension.php Sin embargo, no menciona un ejemplo de cómo una comprensión de lista puede sustituir a reduce() y no puedo pensar en un ejemplo de […]

Reemplazo de bucle while con lista de comprensión

Es común express los bucles como listas de comprensión: mylist=[] for i in range(30): mylist.append(i**2) Esto es equivalente a: mylist = [i**2 for i in range(30)] ¿Hay algún tipo de mecanismo por el cual este tipo de iteración se podría hacer con un bucle while? mylist=[] i=0 while i<30: mylist.append(i**2) i+=1 Por supuesto, con este […]

Python 2.7 creando una lista multidimensional

En Python quiero una forma intuitiva de crear una lista tridimensional. Quiero una lista (n por n). Entonces para n = 4 debería ser: x = [[[],[],[],[]],[[],[],[],[]],[[],[],[],[]],[[],[],[],[]]] He intentado usar: y = [n*[n*[]]] y = [[[]]* n for i in range(n)] Que ambos parecen estar creando copias de una referencia. También he probado la aplicación […]

Establecer comprensiones no funciona en Pydev (Python)

{x for x in range(10)} funciona perfectamente en IDLE, pero cuando bash esto en eclipse (con el complemento Pydev) obtengo un error de syntax: Variable indefinida: x ¿Es porque Pydev no admite la comprensión de los conjuntos o algo así? ¿Qué puedo hacer para que esto funcione? (Este fue solo un ejemplo que no funciona. […]

Calcular una serie de retorno compuesto en Python

Saludos a todos, tengo dos series de datos: rendimientos diarios del precio de las acciones en bruto (flotadores positivos o negativos) y señales de comercio (compra = 1, venta = -1, no comercio = 0). Las devoluciones de precio sin procesar son simplemente el registro del precio de hoy dividido por el precio de ayer: […]

¿Las listas de comprensión son sintácticas de azúcar para `list (expresión del generador)` en Python 3?

En Python 3, ¿una comprensión de lista es simplemente azúcar sintáctica para una expresión generadora incorporada a la función de list ? Por ejemplo, es el siguiente código: squares = [x**2 for x in range(1000)] en realidad convertido en el fondo en el siguiente? squares = list(x**2 for x in range(1000)) Sé que la salida […]

Equivalente para expresión en bucle para comprensión de lista compleja

La siguiente statement de comprensión de la lista de Python podría reformularse como el siguiente bucle for. >>> [(x,y) for x in range(5) if x % 2 == 0 for y in range(5) if y % 2 == 1] >>> result = [] >>> for x in range(5): if x % 2 == 0: for […]

¿Cómo funciona la iteración de listas de listas en Python?

Tengo una lista de esta lista: lst = [[1, 2, 3, 4, 5, 6], [4, 5, 6], [7], [8, 9]] Si ejecuto estos, obtendré una salida como esta. No entiendo cómo funcionan. >>>[j for i in lst for j in i] [1, 2, 3, 4, 5, 6, 4, 5, 6, 7, 8, 9] >>>[j for […]

Zip como una lista de comprensión

Tengo una lista bastante reciente de datos como este: data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] Estoy tratando de comprimirlo para que obtenga algo como esto: zipped_data = [(1, 4, 7), (2, 5, 8), (3, 6, 9)] Sé que podría hacer eso con l = [(data[0]), (data[1]), (data[2])] zipped_data = zip(*l) […]

¿Por qué esta lista de comprensión es más rápida que la expresión del generador equivalente?

Estoy usando Python 3.3.1 de 64 bits en Windows y este fragmento de código: len ([None for n in range (1, 1000000) if n%3 == 1]) Se ejecuta en 136 ms, comparado con este: sum (1 for n in range (1, 1000000) if n%3 == 1) Que se ejecuta en 146ms. ¿No debería una expresión […]