[Python] un dubbio sulle liste
Giuliano Curti
giulianc51 a gmail.com
Sab 23 Maggio 2020 23:13:50 CEST
Ciao a tutti,
mi permetto fare una richiesta qui: mi sfugge qualcosa nella gestione
delle liste; non pretendo la soluzione pronta; una indicazione ad un
testo o ad una sua porzione pertinente sarà più che sufficiente :-)
sto operando con vettori e matrici con una asimmetria che non mi torna chiara:
1) vettori: qui il discorso è semplice, ad es. un vettore riga di 3 elementi
(i vettori colonna rientrano nel caso sotto)
V = [0]*3
V -> [0,0,0]
V[1] = 5
V -> [0,5,0]
tutto perfetto;
2) matrici (emulate con lista di liste), ad es. una matrice 2x3
M = [[0]*3]*2
M = [[0,0,0],[0,0,0]]
quando faccio M[0][1] = 5 mi trovo con M -> [[0, 5, 0], [0, 5, 0]]
cioè non solo
M[0][1] = 5, ma anche M[1][1] = 5;
lo stesso si ripete ovviamente con M[0][0] e con M[0][2];
sembrerebbe cioè che gli elementi M[*][c] rimangano collegati;
attualmente uso la modalità
M = []
for i in range (r):
tmp = []
for k in range(c):
tmp.append(0)
M.append(tmp)
M -> [[0,0,0],[0,0,0]]
che mi consente quello che voglio, ad es. M[0][1] = 5 fornisce M ->
[[0,5,0],[0,0,0]]
ma c'è evidentemente qualcosa che mi sfugge e mi piacerebbe capire :-)
grazie, saluti,
giuliano
Maggiori informazioni sulla lista
Python