Come convertire una lista in un insieme in Python

Uomo d'affari che utilizza il computer portatile in ufficio

Puoi convertire un elenco in un set in Python.

Credito immagine: Poike/iStock/GettyImages

Gli elenchi e gli insiemi in Python contengono entrambi gruppi di elementi, ma ci sono importanti differenze tra i due. In particolare, gli insiemi sono utili per eseguire un'ampia gamma di operazioni come unioni e intersezioni, mentre le liste hanno meno operazioni matematiche ma sono utili per la ricerca di elementi specifici, specialmente con i duplicati, e l'organizzazione dati. Per molte ragioni, potresti aver bisogno di convertire un elenco in un set in Python, e c'è una semplice funzione che puoi usare per farlo.

Spiegazione degli elenchi e degli insiemi di Python

La differenza più importante tra un elenco e un insieme in Python è che un elenco può contenere elementi duplicati, mentre un insieme contiene solo elementi univoci. Ad esempio, se hai un elenco di punteggi dei test definiti come "punteggi=[14, 20, 13, 20, 15]", l'elenco ti dice ogni valore, ma se lo converti in un set, rimuove il duplicato e lascia {14, 20, 13, 15}.

Video del giorno

Un'altra differenza è che le parentesi quadre vengono utilizzate per gli elenchi, mentre le parentesi graffe vengono utilizzate per gli insiemi. Le cose sono un po' complicate dal fatto che anche un dizionario Python usa parentesi graffe, ma lì ogni elemento è costituito dal valore stesso e da una "chiave" separata da due punti.

È importante ricordare che è possibile utilizzare stringhe, interi, float o altri oggetti come parte di un insieme o di un elenco, e questi possono anche essere mischiati nello stesso insieme o elenco. Quindi, proprio come puoi avere un insieme di numeri in Python, puoi anche costruire un insieme di stringhe Python.

Converti una lista in un set

Il processo per convertire un elenco in un set in Python è semplice. Innanzitutto, definisci l'elenco in un modo che abbia senso per le informazioni in esso contenute. Ad esempio, supponiamo che tu voglia definire un elenco di nomi, potresti scrivere nomi=['Lee', 'Mike', 'Jamie', 'Mike', 'Sarah'] annotando le parentesi quadre, le virgolette attorno alle stringhe (i nomi) e le virgole che separano ogni voce.

Per convertire questa lista in un insieme, usi il comando impostato(), dove metti il ​​nome della lista che vuoi convertire tra parentesi. Quindi, in questo caso, puoi scrivere insieme (nomi) per convertire i nomi nell'elenco in un insieme, e puoi assegnargli una variabile come "uniquenames" e visualizzare il risultato usando stampa (nomi univoci), che è funzionalmente equivalente a stampa (insieme (nomi)) ma più ordinato. Confermi che l'operazione è stata eseguita correttamente osservando che il risultato utilizza parentesi graffe e "Mike" è incluso solo una volta.

L'intero codice ha questo aspetto:

nomi=['Lee', 'Mike','Jamie','Mike','Sarah']

nomiunivoci=set (nomi)

print('Nomi univoci: ', nomi univoci)

In questo caso, "Nomi univoci:" è stato aggiunto all'output a scopo di presentazione.

Python: imposta la conversione dell'elenco

Puoi anche eseguire la stessa conversione nella direzione opposta e il processo è sostanzialmente lo stesso, tranne che per l'utilizzo di elenco() comando su un set piuttosto che il contrario. Ciò significa che hai bisogno di un set con cui iniziare, che puoi definire facilmente selezionando una variabile come "big_set" e quindi aggiungendo i contenuti, separati da virgole e tra parentesi graffe. potresti scrivere big_set={1, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 17} per definire un insieme di numeri interi o qualsiasi altro valore.

Per convertirlo in una lista, definisci una variabile (diciamo, "big_list") e usa il elenco() comando, quindi scrivi qualcosa come big_list=lista (big_set) poi stampa (lista_grande) per visualizzare il risultato. Quindi il codice completo è:

big_set={1, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 17}

big_list=lista (big_set)

stampa (lista_grande)

Questo caso non dà un nome all'elenco, quindi restituisce solo l'elenco. Nota che se converti un elenco in un set e poi di nuovo, perdi tutti i valori ripetuti nella prima conversione e non tornano.