Digamos que tengo el siguiente matriz bidimensional vacío en Python:valor Asignar a una celda individual en una matriz de dos pitón dimensiones
q = [[None]*5]*4
quiero asignar un valor de 5
a la primera fila de la primera columna de q
. Instintivamente, hacer lo siguiente:
q[0][0] = 5
Sin embargo, esto produce:
[[5, None, None, None, None],
[5, None, None, None, None],
[5, None, None, None, None],
[5, None, None, None, None]]
El primer elemento de cada array se inicializa a 5
, donde pensé sólo el primer elemento de la primera array obtendría la actualización. Tengo dos preguntas:
- ¿Por qué Python inicializa el primer valor de cada matriz y no solo la primera?
- ¿Hay alguna manera mejor de lograr lo que estoy tratando de hacer?
+1 para diccionario como matriz. –
Le daré +1 si comparte la investigación que condujo a ese valor del 80%. –
Es el Principio de Pareto. http://en.wikipedia.org/wiki/Pareto_principle. 80% del tiempo, solo necesita el 20% de las estructuras de datos. –