Solución:
Puede utilizar la siguiente comprensión de lista anidada:
answer = [[i*j for i in range(1, j+1)] for j in range(1, 8)]
print(answer)
Producción
[[1],
[2, 4],
[3, 6, 9],
[4, 8, 12, 16],
[5, 10, 15, 20, 25],
[6, 12, 18, 24, 30, 36],
[7, 14, 21, 28, 35, 42, 49]]
Cambiaste tu for
bucles. Simplemente cámbielos de nuevo:
test = [
[str(x*y).rjust(2) for y in range(1,x+1)]
for x in range(1,8)
]
for t in test:
print ' '.join
La razón de esto es que desea una nueva lista una vez para cada x
, pero la lista interna tiene tantos números como y
.
Python 3
print("n".join([" ".join([str(x*y) for y in range(1,x+1)]) for x in range(1,8) ]))
Python 2
print "n".join([" ".join([str(x*y) for y in range(1,x+1)]) for x in range(1,8) ])
Proceso de dos pasos.
Únase a la lista por espacio a saber. salida ‘1’, ‘2 4’, ‘3 6 9’, etc.
Únase a la lista resultante por ‘ n’ e imprima el resultado
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)