Sto usando il seguente (brutto) snippet per scorrere su un elenco bidimensionale con stringhe. Controlla se uno dei valori è '0'
e se non è l'ultimo elemento. In caso contrario, cambierà i valori dell'elemento corrente (che è '0'
) con il valore dell'elemento successivo.Spingere tutti i non-'0 'in primo piano
Quello che intendevo fare con questa funzione è quello di spingere tutti i valori non '0'
sul retro. Ovviamente non funziona come previsto (è un inizio), ma non riesco a trovare un modo per ottenere questo risultato senza trasformarlo in un gran casino.
Qual è il pezzo mancante del puzzle? L'aiuto alla ricorsione sarebbe qui?
['0', '2', '0', '4']
dovrebbe trasformarsi in
['2', '4', '0', '0']
e
['0', '3', '1', '0', '2']
in
['3', '1', '2', '0', '0']
frammento attuale:
for idx, x in enumerate(self.list_x):
for idy, i in enumerate(x):
if i == '0':
try:
if x[idy+1]:
pass
except IndexError:
pass
else:
temp = i
self.list_x[idx][idy] = x[idy+1]
self.list_x[idx][idy+1] = temp
perche non modifica il tuo post per aggiungere più spiegazioni su ciò che il codice fa e perché possa risolvere il problema. Una risposta che per lo più contiene solo codice (anche se funziona) di solito non aiuta l'OP a capire il loro problema. – SuperBiasedMan