575 votes

Comment trouver les doublons dans une liste et créer une autre liste avec eux ?

Comment puis-je trouver les doublons dans une liste Python et créer une autre liste des doublons ? La liste ne contient que des entiers.

1 votes

1 votes

Voulez-vous les duplicata une fois, ou à chaque fois qu'ils sont vus à nouveau ?

0 votes

Je pense que cette question a été traitée avec beaucoup plus d'efficacité ici. stackoverflow.com/a/642919/1748045 L'intersection est une méthode intégrée au jeu et devrait faire exactement ce qui est requis.

0voto

Donc, en supposant que nous avons cette liste d'éléments :

a = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]

Nous pouvons travailler juste avec les ensembles afin de trouver le éléments uniques :

unique = set()
for num in a:
    if num not in unique:
        unique.add(num)
    else:
        unique = unique - set([num])

et enfin :

>>> unique
{3, 6}

Si vous voulez récupérer les doublons, il vous suffit de le faire :

>>> duplicates = set(a) - unique
>>> duplicates
{1, 2, 5}

Notes :

  • La recherche d'éléments dans les ensembles est O(1)
  • La suppression d'éléments dans les ensembles est O(1)

0voto

Just Me Points 276
some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n']
some_dictionary = {}

for element in some_list:
    if element not in some_dictionary:
       some_dictionary[element] = 1
    else:
        some_dictionary[element] += 1

for key, value in some_dictionary.items():
    if value > 1:
       print(key, end = ' ')

# another way
duplicates = []

for x in some_list:
    if some_list.count(x) > 1 and x not in duplicates:
        duplicates.append(x)

print()
print(duplicates)

Fuente: ICI

-2voto

SarthAk Points 578

Utilisation de la fonction Set eg:-

arr=[1,4,2,5,2,3,4,1,4,5,2,3]
arr2=list(set(arr))
print(arr2)

Sortie:- [1, 2, 3, 4, 5]

  1. Suppression des doublons à l'aide d'un tableau

eg:-

arr=[1,4,2,5,2,3,4,1,4,5,2,3]
arr3=[]
for i in arr:
    if(i not in arr3):
     arr3.append(i)
print(arr3)

Sortie : -

[1, 4, 2, 5, 3]

  1. Utilisation de la fonction Lambda

eg:-

rem_duplicate_func=lambda arr:set(arr)
print(rem_duplicate_func(arr))

Sortie : -

{1, 2, 3, 4, 5}

  1. Suppression des valeurs dupliquées dans le dictionnaire

eg:-

dict1={
    'car':["Ford","Toyota","Ford","Toyota"],
    'brand':["Mustang","Ranz","Mustang","Ranz"] } dict2={} for key,value in dict1.items():
    dict2[key]=set(value) print(dict2)

Sortie : -

{'voiture' : {'Toyota', 'Ford'}, 'marque' : {'Ranz', 'Mustang'}}

  1. Différence symétrique - Suppression des éléments en double

eg:-

set1={1,2,4,5}
set2={2,1,5,7}
rem_dup_ele=set1.symmetric_difference(set2)
print(rem_dup_ele)

Sortie : -

{4, 7}

-4voto

user5909101 Points 11

Utilisez le sort() fonction. Les doublons peuvent être identifiés en les parcourant en boucle et en contrôlant l1[i] == l1[i+1] .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X