Comprensiones anidadas en Python
Comprensiones en dos dimensiones: rejillas y matrices.
cuadricula = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
plana = [celda for fila in cuadricula for celda in fila]
duplicado = [[celda * 2 for celda in fila] for fila in cuadricula]
diagonal = [cuadricula[i][i] for i in range(len(cuadricula))]
coordenadas = [(r, c) for r in range(3) for c in range(3) if r != c]
tabla = {r: [c * r for c in range(4)] for r in range(3)}
Cómo funciona
- Dos cláusulas
foraplanan una rejilla de filas en celdas. - Una comprensión dentro de otra reconstruye las filas.
- El patrón se extiende a comprensiones de dicts de listas.
Palabras clave y builtins usados aquí
foriflenrange
El intento, en números
- Líneas
- 9
- Caracteres a escribir
- 361
- Tokens
- 130
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 78 segundos.
Paso 3 de 4 en Comprensiones; paso 3 de 53 en Python pythónico.