mercoledì 23 novembre 2016

Rimuovere elementi duplicati

Molte volte ci capita di avere a che fare con una lista che contiene duplicati, qual è il modo più veloce per rimuovere i duplicati? Semplice passare per un array!
Ecco come in poche righe di codice si possono eliminare le linee duplicate di un testo, e potete applicare lo stesso codice anche ad altre code (parole, numeri, ecc.); per esempio la variabile theList contiene la lista da cui eliminare i doppioni:

split theList by return and return
combine theList by return and empty
delete the last char of theList

Vediamo che succede:
  • Il comando split trasforma la variabile theList in un array
  • l'array conterrà una cella per riga
  • ogni cella conterrà cosa c'è dopo il primo carattere di accapo (cioè nulla, visto che gli stiamo dando in pasto una riga alla volta)
  • ogni cella avrà un'etichetta pari al testo della riga.
  • Poichè non possono esistere due celle con la stessa etichetta, in questo modo si eliminano le righe uguali.
  • il comando combine rimette insieme le righe
  • poi eliminiamo l'ultimo carattere di accapo
Semplice, geniale e velocissimo. Che ne dite?