#!/usr/bin/python
# -*- coding: utf-8 -*-

###############################################
# Una dimension
n = 2

# Una forma de definirla
d1 = [0] * n
print(d1)

for k in range(n):
    print(" ", d1[k], end="")
print("\n\n")


# Otra forma de definirla
d1 = [0 for col in range(n)]
print(d1)

for k in range(n):
    print(" ", d1[k], end="")
print("\n\n")


###############################################
# Dos dimensiones
n = 3
m = 3

# Primera forma de definir
M = []
for i in range(n):
    M.append([0] * m)

print(M)

# Matriz identidad
for i in range(n):
    M[i][i] = 1

# visualiza
for i in range(n):
    for j in range(m):
        print(" ", M[i][j], end="")
    print("")


# Segunda forma de definir
d2 = [[0 for col in range(n)] for row in range(m)]
print(d2)

# visualiza
for j in range(m):
    for k in range(n):
        print(" ", d2[j][k], end="")
    print("")
print("\n\n")


# Matriz de tamaño variable
import random

n = int(input("\nNumero de filas: "))
a = int(input("\nMin. de columna en la fila: "))
b = int(input("\nMax. de columna en la fila: "))

# para crear
M = []
for i in range(n):
    C = []
    for j in range(random.randint(a, b)):
        C.append(random.randint(1, 5))
    M.append(C)

# Para visualizar
for i in range(len(M)):
    print("[ ", end="")
    for j in range(len(M[i])):
        print(" ", M[i][j], end="")
    print(" ]")


###############################################
# Tres dimensiones

n = 4
m = 5
o = 6

d3 = [[[0 for col in range(n)] for row in range(m)] for x in range(o)]
d3[0][0][0] = 1
d3[1][2][1] = 144
d3[4][3][0] = 3.12
d3[5][4][3] = 2

print(d3)

for i in range(o):
    for j in range(m):
        for k in range(n):
            print(" ", d3[i][j][k], end="")
        print("")
    print("")
