Trova duplicati in una lista in Python
- 
          
            Usa la funzione set()per trovare duplicati in una lista Python
- 
          
            Usa il modulo iteration_utilsper trovare duplicati in una lista Python
 
Questo tutorial mostra come cercare i duplicati all’interno di una lista in Python.
Usa la funzione set() per trovare duplicati in una lista Python
    
Python set() è una funzione per convertire una lista in un insieme. In base alla descrizione di un set e di una lista, convertire una lista in un set significherebbe rimuovere tutti i duplicati nell’lista.
Tuttavia, ciò che vogliamo è cercare le voci nell’lista che sono duplicate. Per farlo, usiamo ancora la funzione set(), ma includiamo solo quelli con più di una voce nell’lista, il che significa che sono voci che hanno duplicati.
Dichiarare una funzione che cerca i duplicati all’interno di una lista e memorizzarli come un insieme.
def listToSet(listNums):
    set([num for num in listNums if listNums.count(x) > 1])
Un altro approccio, se vuoi mantenere il risultato come una lista invece che come un insieme, è usare set() e add() per trovare i duplicati all’interno della lista e riconvertirli in una lista durante la restituzione.
def list_duplicates(listNums):
    once = set()
    seenOnce = once.add
    twice = set(num for num in listNums if num in once or seenOnce(x))
    return list(twice)
Questa funzione aggiunge la voce a once se il numero appare per la prima volta e non esiste all’interno dell’insieme once.
Entrambe le funzioni restituiranno lo stesso output, sebbene una sia un insieme e l’altra sia una lista. Il risultato produrrà tutte le voci duplicate in listNums.
[1, 3, 5, 8]
Usa il modulo iteration_utils per trovare duplicati in una lista Python
iteration_utils ha due funzioni che possono cercare duplicati all’interno di una funzione predefinita: duplicates e unique_everseen.
Useremo la stessa definizione di lista listNums sopra.
Importa duplicates da iteration_utils e usalo per restituire una lista di tutti i duplicati all’interno di listNums.
from iteration_utils import duplicates
listNums = [1, 1, 2, 3, 3, 4, 5, 5, 5, 5, 6, 8, 8]
def listDups(listNums):
    return list(duplicates(listNums))
L’output della funzione precedente restituirà una lista di tutte le voci duplicate all’interno di listNums.
[1, 1, 3, 3, 5, 5, 5, 5, 8, 8]
Tuttavia, l’lista include anche le iterazioni delle voci duplicate. Ciò significa che restituirà ogni istanza della voce duplicata.
- È qui che entra in gioco unique_everseen. Questa funzione elabora l’lista per rimuovere tutte le istanze duplicate restituite daduplicates().
from iteration_utils import duplicates
from iteration_utils import unique_everseen
listNums = [1, 1, 2, 3, 3, 4, 5, 5, 5, 5, 6, 8, 8]
def listDupsUnique(listNums):
    return list(unique_everseen(duplicates(listNums)))
Questa funzione restituirà quindi:
[1, 3, 5, 8]
In sintesi, ci sono 2 semplici soluzioni per cercare duplicati all’interno di una lista in Python. Il primo è usare set() e altre funzioni di utilità degli insiemi in Python per cercare duplicati e memorizzarli in un’altra variabile. Un altro è del modulo iteration_utils usando duplicates e unique_everseen, che più o meno fa la stessa cosa e produce lo stesso output.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedInArticolo correlato - Python List
- Converti un dizionario in una lista in Python
- Rimuovi i duplicati dall'lista in Python
- Rimuovi tutte le occorrenze di un elemento da una lista in Python
- Ottieni la media di una lista in Python
- Qual è la differenza tra i metodi di elencazione, aggiungere ed estendere
- Come convertire una lista in stringa in Python
