Crear una matriz a partir de una lista
Python
Publicado el 22 de Abril del 2021 por Katas (150 códigos)
4.164 visualizaciones desde el 22 de Abril del 2021
A partir de una lista de valores, crear una matriz con tantas columnas como valores tenga la matriz y con tantas filas como el valor mas alto de la lista, donde cada posición es una columna, y cada numero es una fila. Por lo tanto pondremos el valor 1 en la columna y fila indicada.
Por ejemplo, la lista [0, 1, 2] devolverá esta matriz:
La lista [6,0,3,2,5,1,4] devolverá esta matriz:
Utilizando el ejemplo de joel publicado en: https://www.lawebdelprogramador.com/codigo/Python/6150-Crear-una-lista-bidimensional.html, creamos una lista dentro de otra lista (en este caso, la rellenamos de ceros):
pero en vez de poner siempre un 0, ponemos un 1 cuando coincide la fila con la columna:
quedando:
Por ejemplo, la lista [0, 1, 2] devolverá esta matriz:
1
2
3
4
5
[
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]
]
La lista [6,0,3,2,5,1,4] devolverá esta matriz:
1
2
3
4
5
6
7
8
9
[
[0, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 1, 0],
[0, 0, 0, 1, 0, 0, 0],
[0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 1, 0, 0],
[1, 0, 0, 0, 0, 0, 0]
]
Utilizando el ejemplo de joel publicado en: https://www.lawebdelprogramador.com/codigo/Python/6150-Crear-una-lista-bidimensional.html, creamos una lista dentro de otra lista (en este caso, la rellenamos de ceros):
1
[[0 for x in range(len(lista))] for y in range(max(lista)+1)]
1
...1 if lista[x]==y else 0...
1
[[1 if lista[x]==y else 0 for x in range(len(lista))] for y in range(max(lista)+1)]
23 visualizaciones durante los últimos 90 días