Maison > Problème commun > Comment supprimer les doublons d'une liste Python

Comment supprimer les doublons d'une liste Python

百草
Libérer: 2023-06-14 13:25:07
original
13190 Les gens l'ont consulté

Méthodes de déduplication de liste Python : 1. Boucle For pour implémenter la déduplication de liste, l'ordre d'origine reste inchangé après la déduplication ; 2. Déduplication de dérivation de liste, l'ordre d'origine reste inchangé après la déduplication ; 3. Conversion d'ensemble La fonction "set()" implémente la déduplication de liste.Le principe est que la duplication d'éléments dans le même ensemble n'est pas autorisée. 4. Créez un nouveau dictionnaire pour réaliser la déduplication de liste.Le principe est que les "clés" du dictionnaire ne peuvent pas être répétées. . Il y a des données en double dans la liste de suppression. Tant qu'il y a des duplications, supprimez-les toutes.

Comment supprimer les doublons d'une liste Python

Le système d'exploitation de ce tutoriel : système windows10, Python version 3.11.2, ordinateur DELL G3.

Comment supprimer les doublons d'une liste Python :
1. Utilisez une boucle for pour supprimer les doublons d'une liste

Une fois que cette méthode a supprimé les doublons, l'ordre d'origine reste inchangé.

# for循环实现列表去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = []
for l1 in list1:
    if l1 not in list2:
        list2.append(l1)
print(list2)
Copier après la connexion

Résultat : ['a', 'b', 1, 3, 9]

2. Utilisez la compréhension de liste pour supprimer les doublons
Après avoir supprimé les doublons avec cette méthode, l'ordre d'origine reste inchangé.

# 使用列表推导式去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
res = []
[res.append(i) for i in list1 if i not in res]
print(res)
Copier après la connexion

Résultat : ['a', 'b', 1, 3, 9]

3. Utilisez la fonction de conversion d'ensemble set() pour réaliser la déduplication de liste
Principe : les éléments du même ensemble ne sont pas autorisés en double.

# set()列表去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = list(set(list1))
print(list2)
Copier après la connexion

Résultat : [1, 3, 9, 'b', 'a']
Problème : après avoir utilisé la fonction set() pour supprimer les doublons, ils seront automatiquement triés et l'ordre de la liste d'origine changera
La solution est de 2 types :
La première méthode, utilisez la méthode sort()

# # 第一种方法,sort()
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = list(set(list1))
list2.sort(key=list1.index)
print(list2)
Copier après la connexion

Résultat : ['a', 'b', 1, 3, 9]
Remarque : La méthode sort() n'a pas de valeur de retour, et les éléments de la liste sont triés Trier
Deuxième méthode, utilisez la fonction sorted()

# 第二种方法,sored()
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = sorted(list(set(list1)), key=list1.index)
print(list2)
Copier après la connexion

Résultat : ['a', 'b', 1, 3, 9]
Remarque : la fonction intégrée python sorted() renvoie un nouvelle liste, qui n'est pas correcte Apportez des modifications à la liste d'origine

4. Utilisez la nouvelle méthode du dictionnaire pour réaliser la déduplication de la liste
Principe : Les "clés" du dictionnaire ne peuvent pas être répétées
Après la déduplication à l'aide de ceci méthode, l’ordre initial reste inchangé.

# 使用新建字典实现列表去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
dic = {}
dic = dic.fromkeys(list1).keys()
print(list(dic))
Copier après la connexion

Résultat : ['a', 'b', 1, 3, 9]

5. Supprimez les données en double dans la liste
Les 4 méthodes de déduplication ci-dessus en conservent toutes une et suppriment les autres
La méthode suivante est pour n'en conserver aucun tant qu'il y a des doublons

# 删除存在重复的值,不保留
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = [i for i in list1 if list1.count(i) == 1]
print(list2)
Copier après la connexion

Résultat : ['b', 1, 3]

Voici 5 méthodes ci-dessus pour dédoublonner les listes. Vous pouvez choisir la méthode correspondante en fonction de vos besoins.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal