Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

Dubbele Elementen Verwijderen uit een Python Lijst

Een lijst is een fundamentele Python-datastructuur die een geordende verzameling items vasthoudt zoals gehele getallen, strings of custom-objecten. Het is het Python-equivalent van een array in andere talen.

Hieronder zijn bewezen technieken om dubbele elementen uit een lijst te verwijderen terwijl volgorde en leesbaarheid behouden blijven.

  • Dubbelen verwijderen met een set
  • Dubbelen verwijderen met een tijdelijke lijst
  • Dubbelen verwijderen met OrderedDict (of dict.fromkeys)
  • Dubbelen verwijderen met een simpele for-lus
  • Dubbelen verwijderen via list comprehension
  • Dubbelen verwijderen met NumPy's unique()
  • Dubbelen verwijderen met Pandas' unique()
  • Dubbelen verwijderen met enumerate() en list comprehension

Dubbelen Verwijderen met een Set

Python's ingebouwde set() functie elimineert duplicaten door alleen unieke elementen te retourneren. Converteer de lijst naar een set, en dan terug naar een lijst om het verzamel-formaat te behouden.

mijn_lijst = [1,1,2,3,2,2,4,5,6,2,1]
mijn_eind_lijst = set(mijn_lijst)
print(list(mijn_eind_lijst))

Output:

[1, 2, 3, 4, 5, 6]

Dubbelen Verwijderen met een Tijdelijke Lijst

Deze aanpak maakt een lege lijst, itereert over de originele lijst en voegt alleen items toe die nog niet gezien zijn.

mijn_lijst = [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
print("Lijst Voor ", mijn_lijst)
tijdelijke_lijst = []
for i in mijn_lijst:
    if i not in tijdelijke_lijst:
        tijdelijke_lijst.append(i)
mijn_lijst = tijdelijke_lijst
print("Lijst Na Dubbelen Verwijderen ", mijn_lijst)

Output:

Lijst Voor [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
Lijst Na Dubbelen Verwijderen [1, 2, 3, 4, 5, 6]

Dubbelen Verwijderen met OrderedDict (of dict.fromkeys)

Voor Python 3.5+ behoudt een gewone dict de invoegvolgorde, dus dict.fromkeys() kan gebruikt worden om unieke waarden in volgorde te behouden.

mijn_lijst = ['a','x','a','y','a','b','b','c']
mijn_eind_lijst = dict.fromkeys(mijn_lijst)
print(list(mijn_eind_lijst))

Output:

['a', 'x', 'y', 'b', 'c']

Dubbelen Verwijderen met een Simpele For-lus

Doorloop de lijst, voeg items toe aan een nieuwe lijst alleen als ze nog niet voorgekomen zijn.

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

Output:

[1, 2, 3, 4, 5, 6]

Dubbelen Verwijderen via List Comprehension

List comprehensions bieden een beknopte syntaxis terwijl leesbaarheid behouden blijft.

mijn_lijst = [1,2,2,3,1,4,5,1,2,6]
mijn_eind_lijst = []
[mijn_eind_lijst.append(n) for n in mijn_lijst if n not in mijn_eind_lijst]
print(mijn_eind_lijst)

Output:

[1, 2, 3, 4, 5, 6]

Dubbelen Verwijderen met NumPy's unique()

NumPy's unique() functie retourneert de gesorteerde unieke elementen van een array.

import numpy as np
mijn_lijst = [1,2,2,3,1,4,5,1,2,6]
mijn_eind_lijst = np.unique(mijn_lijst).tolist()
print(mijn_eind_lijst)

Output:

[1, 2, 3, 4, 5, 6]

Dubbelen Verwijderen met Pandas' unique()

Op dezelfde manier biedt Pandas een lichtgewicht unique() methode die werkt op lijst-achtige objecten.

import pandas as pd
mijn_lijst = [1,2,2,3,1,4,5,1,2,6]
mijn_eind_lijst = pd.unique(mijn_lijst).tolist()
print(mijn_eind_lijst)

Output:

[1, 2, 3, 4, 5, 6]

Dubbelen Verwijderen met enumerate() en List Comprehension

Het combineren van enumerate() met een list comprehension staat toe om duplicaten te verwijderen terwijl de eerste voorkomen van elk element bewaard blijft.

mijn_lijst = [1,2,2,3,1,4,5,1,2,6]
mijn_eind_lijst = [i for j, i in enumerate(mijn_lijst) if i not in mijn_lijst[:j]]
print(mijn_eind_lijst)

Output:

[1, 2, 3, 4, 5, 6]

Samenvatting

  • set() is de snelste manier om duplicaten te droppen, behoudt maar niet de volgorde.
  • Tijdelijke lijsten of for-lussen behouden de originele volgorde maar zijn iets minder beknopt.
  • Ordered dictionaries of dict.fromkeys() behouden volgorde en zijn erg efficiënt.
  • NumPy en Pandas bieden one-liner oplossingen voor numerieke of DataFrame-zware workflows.
  • List comprehensions met enumerate() bieden een functionele stijl die zowel leesbaar als volgorde-behoudend is.

Python

  1. Python Datatypes onder de knie krijgen: Een praktische gids
  2. Python Operators onder de knie krijgen: Een uitgebreide gids
  3. Python Pass Statement onder de knie krijgen: Een praktische gids
  4. Python Functie-argumenten onder de knie krijgen: Positionele, Keyword en Default Parameters
  5. Python's range()-functie onder de knie: van basis tot geavanceerde use cases
  6. Python Lijsten Onder de Loep: Append, Sort, Lengte & List Comprehensions (Praktische Gids)
  7. Gemiddeldes Berekenen in Python: Een Praktische Gids
  8. Python list.count(): Expert Gids met Praktische Voorbeelden
  9. Items Verwijderen uit een Python Lijst: remove(), pop(), clear() en del
  10. Python List index() – Elementposities Vinden met Praktische Voorbeelden
  11. Python Lists Beheersen: Uitgebreide Handleiding