Cosa determina l'ordine interno di un set Python?

0

Quando ho letto degli insiemi in Python, viene sempre detto che restituiscono gli oggetti in un ordine arbitrario / casuale. Cosa provoca esattamente questa "casualità"?

    
posta Simon Toogood 13.12.2018 - 19:02
fonte

1 risposta

3

Non è tanto casuale, ma dal momento che non è definito, non dovresti avere aspettative sull'ordine in cui si trovano, a meno che tu non lo ordini espressamente.

Ci sono una varietà di interpreti Python. Di fatto ci sono molti . Quando aggiungi elementi a un elenco, l'interprete python è responsabile di tenere traccia degli articoli. Ogni interprete potrebbe tenerne traccia in diversi modi. Il meccanismo di archiviazione sottostante potrebbe cambiare da una versione a quella successiva di un singolo interprete. Potrebbe cambiare le strategie di archiviazione in base alle dimensioni dell'elenco. Potrebbe cambiare le strategie di storage basate sull'architettura del processore, in base al giorno della settimana in cui si trovano, in pratica tutti i criteri che gli sviluppatori dell'interprete decidono è importante.

Quindi il consiglio di considerare l'ordine come casuale è quello di formare l'abitudine a non dipendere da un comportamento non richiesto per i propri programmi. Certo, è probabile che l'ordine di una lista sia uguale a quello in cui sono stati aggiunti gli articoli, fino a quando improvvisamente non è e il tuo programma esplode. Se tratti mentalmente l'ordine come arbitrario / casuale, non sarai mai colto di sorpresa perché ordinerai sempre in modo esplicito l'elenco in qualunque ordine sia richiesto per l'attività in corso.

    
risposta data 13.12.2018 - 21:11
fonte

Leggi altre domande sui tag