Μια λίστα είναι ένα κοντέινερ που περιέχει διαφορετικά αντικείμενα Python, τα οποία θα μπορούσαν να είναι ακέραιοι, λέξεις, τιμές κ.λπ. Είναι το ισοδύναμο ενός πίνακα σε άλλες γλώσσες προγραμματισμού.
Οπότε εδώ θα περάσουμε από διαφορετικούς τρόπους με τους οποίους μπορούμε να αφαιρέσουμε διπλότυπα από μια δεδομένη λίστα.
Σε αυτό το σεμινάριο, θα μάθετε:
- Αφαιρέστε τα διπλά από τη λίστα χρησιμοποιώντας το Set
- Κατάργηση διπλότυπων από μια λίστα χρησιμοποιώντας την προσωρινή λίστα.
- Καταργήστε τα διπλότυπα από τη λίστα χρησιμοποιώντας το Dict
- Καταργήστε τα διπλότυπα από μια λίστα χρησιμοποιώντας το for-loop
- Αφαιρέστε τα διπλά από τη λίστα χρησιμοποιώντας την κατανόηση λίστας
- Καταργήστε τα διπλότυπα από τη λίστα χρησιμοποιώντας τη μέθοδο Numpy unique ().
- Καταργήστε τα διπλά από τη λίστα χρησιμοποιώντας τις μεθόδους Pandas
- Αφαιρέστε τα διπλά χρησιμοποιώντας το αριθμητικό () και κατανοήστε τη λίστα
Αφαιρέστε τα διπλά από τη λίστα χρησιμοποιώντας το Set
Για να αφαιρέσετε τα διπλότυπα από μια λίστα, μπορείτε να χρησιμοποιήσετε το ενσωματωμένο σύνολο λειτουργιών (). Η ειδικότητα της μεθόδου set () είναι ότι επιστρέφει διαφορετικά στοιχεία.Έχουμε μια λίστα: [1,1,2,3,2,2,4,4,6,6,1,1]. Η λίστα έχει πολλά αντίγραφα που πρέπει να αφαιρέσουμε και να επιστρέψουμε μόνο τα ξεχωριστά στοιχεία. Η λίστα δίνεται στην ενσωματωμένη συνάρτηση set (). Αργότερα εμφανίζεται η τελική λίστα χρησιμοποιώντας τη λίστα () ενσωματωμένη συνάρτηση, όπως φαίνεται στο παρακάτω παράδειγμα.
Η έξοδος που λαμβάνουμε είναι διακριτά στοιχεία όπου εξαλείφονται όλα τα διπλά στοιχεία.
my_list = [1,1,2,3,2,2,4,5,6,2,1]my_final_list = set(my_list)print(list(my_final_list))
Παραγωγή:
[1, 2, 3, 4, 5, 6]
Κατάργηση διπλότυπων από μια λίστα χρησιμοποιώντας την προσωρινή λίστα
Για να αφαιρέσετε διπλότυπα από μια δεδομένη λίστα, μπορείτε να χρησιμοποιήσετε μια κενή προσωρινή λίστα. Για αυτό πρώτα, θα πρέπει να περιηγηθείτε στη λίστα με διπλότυπα και να προσθέσετε τα μοναδικά στοιχεία στην προσωρινή λίστα. Αργότερα η προσωρινή λίστα αντιστοιχίζεται στην κύρια λίστα.
Εδώ είναι ένα λειτουργικό παράδειγμα χρησιμοποιώντας προσωρινή λίστα.
my_list = [1, 2, 3, 1, 2, 4, 5, 4 ,6, 2]print("List Before ", my_list)temp_list = []for i in my_list:if i not in temp_list:temp_list.append(i)my_list = temp_listprint("List After removing duplicates ", my_list)
Παραγωγή:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]List After removing duplicates [1, 2, 3, 4, 5, 6]
Καταργήστε τα διπλότυπα από τη λίστα χρησιμοποιώντας το Dict
Μπορούμε να αφαιρέσουμε διπλότυπα από τη δεδομένη λίστα εισάγοντας OrderedDict από συλλογές. Είναι διαθέσιμο από το python2.7 και μετά. Το OrderedDict φροντίζει να σας επιστρέψει τα ξεχωριστά στοιχεία με τη σειρά με την οποία υπάρχει το κλειδί.
Ας χρησιμοποιήσουμε μια λίστα και να χρησιμοποιήσουμε τη μέθοδο fromkeys () διαθέσιμη στο OrderedDict για να λάβουμε τα μοναδικά στοιχεία από τη λίστα.
Για να χρησιμοποιήσετε τη μέθοδο OrderedDict.fromkey (), πρέπει να εισαγάγετε το OrderedDict από συλλογές, όπως φαίνεται παρακάτω:
from collections import OrderedDict
Ακολουθεί ένα παράδειγμα για την κατάργηση διπλότυπων χρησιμοποιώντας τη μέθοδο OrderedDict.fromkeys ().
from collections import OrderedDictmy_list = ['a','x','a','y','a','b','b','c']my_final_list = OrderedDict.fromkeys(my_list)print(list(my_final_list))
Παραγωγή:
['a', 'x', 'y', 'b', 'c']
Από το Python 3.5+ και μετά, μπορούμε να χρησιμοποιήσουμε τα κανονικά dict.fromkeys () για να πάρουμε τα ξεχωριστά στοιχεία από τη λίστα. Οι μέθοδοι dict.fromkeys () επιστρέφουν κλειδιά που είναι μοναδικά και βοηθούν να απαλλαγούμε από τις διπλές τιμές.
Ένα παράδειγμα που δείχνει τη λειτουργία του dict.fromkeys () σε μια λίστα για να δώσει τα μοναδικά στοιχεία είναι το εξής:
my_list = ['a','x','a','y','a','b','b','c']my_final_list = dict.fromkeys(my_list)print(list(my_final_list))
Παραγωγή:
['a', 'x', 'y', 'b', 'c']
Καταργήστε τα διπλότυπα από μια λίστα χρησιμοποιώντας το for-loop
Χρησιμοποιώντας το for-loop, θα διασχίσουμε τη λίστα αντικειμένων για να αφαιρέσουμε διπλότυπα.
Αρχικοποιήστε αρχικά τον πίνακα για να αδειάσει, δηλαδή myFinallist = []. Μέσα στο for-loop, προσθέστε ελέγξτε αν τα στοιχεία της λίστας υπάρχουν στον πίνακα myFinallist. Εάν τα αντικείμενα δεν υπάρχουν, προσθέστε το στοιχείο στον πίνακα myFinallist χρησιμοποιώντας το προσάρτημα () μέθοδος.
Έτσι, όποτε συναντάτε το διπλό στοιχείο, θα υπάρχει ήδη στον πίνακα myFinallist και δεν θα εισαχθεί. Ας ελέγξουμε τώρα το ίδιο στο παρακάτω παράδειγμα:
my_list = [1,2,2,3,1,4,5,1,2,6]myFinallist = []for i in my_list:if i not in myFinallist:myFinallist.append(i)print(list(myFinallist))
Παραγωγή:
[1, 2, 3, 4, 5, 6]
Αφαιρέστε τα διπλά από τη λίστα χρησιμοποιώντας την κατανόηση λίστας
Οι λίστες κατανόησης είναι συναρτήσεις Python που χρησιμοποιούνται για τη δημιουργία νέων ακολουθιών (όπως λίστες, λεξικά κ.λπ.) χρησιμοποιώντας ακολουθίες που έχουν ήδη δημιουργηθεί. Αυτό σας βοηθά να μειώσετε τους μεγαλύτερους βρόχους και να διευκολύνετε την ανάγνωση και τη συντήρηση του κώδικα.
Ας χρησιμοποιήσουμε την κατανόηση λίστας για να αφαιρέσουμε τα διπλότυπα από τη λίστα που δίνεται.
my_list = [1,2,2,3,1,4,5,1,2,6]my_finallist = [][my_finallist.append(n) for n in my_list if n not in my_finallist]print(my_finallist)
Παραγωγή:
[1, 2, 3, 4, 5, 6]
Καταργήστε τα διπλότυπα από τη λίστα χρησιμοποιώντας τη μέθοδο Numpy unique ().
Η μέθοδος μοναδική () από την ενότητα Numpy μπορεί να μας βοηθήσει να αφαιρέσουμε διπλότυπα από τη λίστα που δίνεται.
Για να εργαστείτε με την πρώτη μονάδα numpy εισαγωγής Numpy, πρέπει να ακολουθήσετε αυτά τα βήματα:
Βήμα 1 ) Εισαγωγή μονάδας Numpy
import numpy as np
Βήμα 2) Χρησιμοποιήστε τη λίστα σας με διπλότυπα μέσα σε μια μοναδική μέθοδο όπως φαίνεται παρακάτω. Η έξοδος μετατρέπεται σε μορφή λίστας χρησιμοποιώντας τη μέθοδο tolist ().
myFinalList = np.unique(my_list).tolist()
Βήμα 3) Τέλος, εκτυπώστε τη λίστα όπως φαίνεται παρακάτω:
print(myFinalList)
Ο τελικός κωδικός με έξοδο έχει ως εξής:
import numpy as npmy_list = [1,2,2,3,1,4,5,1,2,6]myFinalList = np.unique(my_list).tolist()print(myFinalList)
Παραγωγή:
[1, 2, 3, 4, 5, 6]
Καταργήστε τα διπλά από τη λίστα χρησιμοποιώντας τις μεθόδους Pandas
Η μονάδα Pandas έχει μια μοναδική () μέθοδο που θα μας δώσει τα μοναδικά στοιχεία από τη λίστα που δίνεται.
Για να εργαστείτε με τη μονάδα Pandas, πρέπει να ακολουθήσετε αυτά τα βήματα:
Βήμα 1) Εισαγωγή μονάδας Pandas
import pandas as pd
Βήμα 2) Χρησιμοποιήστε τη λίστα σας με διπλότυπα μέσα σε μοναδική () μέθοδο όπως φαίνεται παρακάτω:
myFinalList = pd.unique(my_list).tolist()
Βήμα 3) Εκτυπώστε τη λίστα όπως φαίνεται παρακάτω:
print(myFinalList)
Ο τελικός κωδικός με έξοδο έχει ως εξής:
import pandas as pdmy_list = [1,2,2,3,1,4,5,1,2,6]myFinalList = pd.unique(my_list).tolist()print(myFinalList)
Παραγωγή:
[1, 2, 3, 4, 5, 6]
Αφαιρέστε τα διπλά χρησιμοποιώντας το αριθμητικό () και κατανοήστε τη λίστα
Εδώ ο συνδυασμός κατανόησης λίστας και απαρίθμηση για την αφαίρεση των διπλών στοιχείων. Το Enumerate επιστρέφει ένα αντικείμενο με έναν μετρητή σε κάθε στοιχείο της λίστας. Για παράδειγμα (0,1), (1,2) κ.λπ. Εδώ η πρώτη τιμή είναι το ευρετήριο και η δεύτερη τιμή είναι το στοιχείο λίστας. Δ
Κάθε στοιχείο ελέγχεται εάν υπάρχει στη λίστα, και εάν ισχύει, αφαιρείται από τη λίστα.
my_list = [1,2,2,3,1,4,5,1,2,6]my_finallist = [i for j, i in enumerate(my_list) if i not in my_list[:j]]print(list(my_finallist))
Παραγωγή:
[1, 2, 3, 4, 5, 6]
Περίληψη
- Για να αφαιρέσετε τα διπλότυπα από μια λίστα, μπορείτε να χρησιμοποιήσετε το ενσωματωμένο σύνολο λειτουργιών (). Η ειδικότητα της μεθόδου set () είναι ότι επιστρέφει διαφορετικά στοιχεία.
- Μπορείτε να αφαιρέσετε διπλότυπα από τη δεδομένη λίστα εισάγοντας συλλογές OrderedDictfrom. Είναι διαθέσιμο από το python2.7 και μετά. Το OrderedDictdict φροντίζει να σας επιστρέψει τα ξεχωριστά στοιχεία με τη σειρά με την οποία υπάρχει το κλειδί.
- Μπορείτε να χρησιμοποιήσετε ένα for-loop που θα διασχίσουμε τη λίστα στοιχείων για να αφαιρέσουμε τα διπλότυπα.
- Η μέθοδος μοναδική () από την ενότητα Numpy μπορεί να μας βοηθήσει να αφαιρέσουμε διπλότυπα από τη λίστα που δίνεται.
- Η μονάδα Pandas έχει μια μοναδική () μέθοδο που θα μας δώσει τα μοναδικά στοιχεία από τη λίστα που δίνεται.
- Ο συνδυασμός κατανόησης λίστας και απαρίθμησης χρησιμοποιείται για την αφαίρεση των διπλών στοιχείων από τη λίστα. Το Enumerate επιστρέφει ένα αντικείμενο με έναν μετρητή σε κάθε στοιχείο της λίστας.