Ho una lista 2 dimensionale:Sostituzione ogni 2 ° elemento della lista
[[5, 80, 2, 57, 5, 97], [2, 78, 2, 56, 6, 62], [5, 34, 3, 54, 6, 5, 2, 58, 5, 61, 5, 16]]
In cui ho bisogno di cambiare ogni secondo elemento a 0, a partire dal primo. Così dovrebbe assomigliare a questo:
[[0, 80, 0, 57, 0, 97], [0, 78, 0, 56, 0, 62], [0, 34, 0, 54, 0, 5, 0, 58, 0, 61, 0, 16]]
Algorithm che uso:
for i in tempL:
for j, item in enumerate(i):
if i.index(item) % 2 == 0:
print('change, index:'),
print(i.index(item))
i[j] = 0
else:
print('not change, index:'),
print(i.index(item))
Ma ciò che ottengo è questo:
change, index: 0
not change, index: 1
change, index: 2
not change, index: 3
change, index: 4
not change, index: 5
change, index: 0
not change, index: 1
change, index: 2
not change, index: 3
change, index: 4
not change, index: 5
change, index: 0
not change, index: 1
change, index: 2
not change, index: 3
change, index: 4
not change, index: 5
change, index: 6
not change, index: 7
not change, index: 5
not change, index: 9
not change, index: 5
not change, index: 11
[[0, 80, 0, 57, 0, 97], [0, 78, 0, 56, 0, 62], [0, 34, 0, 54, 0, 5, 0, 58, 5, 61, 5, 16]]
Alcuni elementi non sono cambiati, ed è perché (I aggiunto indice di stampa per vedere che) pensa che l'indice di quegli elementi sia 7 e 9 per qualche ragione. Che cosa può essere, perché sto cercando un errore per così tanto tempo ancora non riesco a trovare ..
Ho controllato, non ci sono spazi extra o nulla nella lista.
Perché stai utilizzando 'i.index'? Non intendi 'j'? – kojiro