Qual è la differenza tra elenchi e insiemi in Python?


Migliore risposta

Ci sono alcune differenze significative:

  • Indicizzazione – una lista può essere indicizzata per numero intero (a partire da 0); un insieme non può essere indicizzato (non esiste il concetto del primo elemento in un insieme tranne quando è iterato).
  • Slicing – una lista può essere suddivisa (usando la notazione [a: b]); un set Python non può essere suddiviso.
  • Contenuto: un elenco può contenere qualsiasi combinazione di elementi di dati; un insieme può contenere solo quegli elementi di dati che sono hash (cioè la funzione hash () restituisce un valore).
  • Duplicati – un elenco può contenere elementi di dati duplicati – non cè limite al numero di volte che gli elementi di valore uguale appare nellelenco; un set non può contenere duplicati.
  • Ordinamento: gli elenchi sono ordinati, il che significa che mantengono lordine come determinato dal programma utilizzando lelenco; gli insiemi non sono ordinati – non esiste il concetto di primo, secondo ecc. – e non cè modo che un programmatore possa controllare lordine in cui un insieme viene iterato, visualizzato o presentato in altro modo. (Nota lordinamento non equivale a essere ordinati, ma nemmeno gli insiemi possono essere ordinati).
  • appartenenza: un test di appartenenza (loperatore “in”) in un elenco è una ricerca lineare dal ultimo ; un test di appartenenza su un set si basa prima sullhash () del valore cercato. La ricerca di un insieme è notevolmente più efficiente rispetto a un elenco di dimensioni simili.
  • Altre funzionalità: gli elenchi non hanno comportamenti per la creazione di nuovi elenchi basati su sovrapposizioni o differenze tra elenchi; gli insiemi daltra parte hanno una miriade di operazioni (e metodi) per identificare le differenze e le sovrapposizioni tra gli insiemi.

Risposta

Gli insiemi sono strutture di dati, simili a elenchi o dizionari. Vengono creati utilizzando le parentesi graffe o la funzione set . Condividono alcune funzionalità con gli elenchi, come luso di in per verificare se contengono un elemento particolare.

num\_set = {1, 2,3,4,5}

word\_set = set ([“spam”, “uova”, “salsiccia”])

print (3 in num\_set)

print (“spam” non in word\_set)

>> Vero

>>> Falso

Nota: per creare un insieme vuoto devi usare set (), come {} crea un dizionario vuoto.

Gli insiemi differiscono dagli elenchi in diversi modi, ma condividono diverse operazioni sugli elenchi come len . Non sono ordinati, il che significa che non possono essere indicizzati. non possono contenere elementi duplicati. A causa del modo in cui “vengono memorizzati,” è più veloce per verificare se un elemento fa parte di un insieme, piuttosto che parte di un elenco. Invece di utilizzare append per aggiungere a un set, usa add . Il metodo remove rimuove uno specifico elemento da un insieme; pop rimuove un elemento arbitrario.

Gli insiemi possono essere combinati utilizzando operazioni matematiche. Il union | combina due insiemi per formarne uno nuovo contenente elementi in entrambi. Il intersezione Loperatore & ottiene gli elementi solo in entrambi. La differenza operator ottiene elementi in il primo set ma non nel secondo. Loperatore differenza simmetrica ^ ottiene elementi in uno dei due set, ma non in entrambi.

Quando utilizzare un dizionario: – Quando è necessaria unassociazione logica tra una chiave: valore coppia. – Quando è necessaria una ricerca rapida dei dati, basata su una chiave personalizzata. – Quando i tuoi dati vengono costantemente modificati. Ricorda, i dizionari sono modificabili. Quando utilizzare gli altri tipi: – Utilizza gli elenchi se hai una raccolta di dati che non necessita di accesso casuale. Prova a scegliere gli elenchi quando hai bisogno di una raccolta semplice e iterabile che viene modificata frequentemente. – Utilizza un set se hai bisogno di unicità per gli elementi. – Usa tuple quando i tuoi dati non possono cambiare.

Spero che questo ti possa aiutare.

Buona codifica.

Unultima cosa, se ti piace, allora votala “mi motiverà.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *