Για να αφαιρέσετε ένα στοιχείο από μια λίστα (array) τύπου list στην Python, χρησιμοποιήστε τις μεθόδους clear(), pop() και remove(). Μπορείτε επίσης να καθορίσετε τη θέση και το εύρος της λίστας χρησιμοποιώντας το index ή το slice και στη συνέχεια να τη διαγράψετε χρησιμοποιώντας την εντολή del.
Οι ακόλουθες πληροφορίες παρέχονται εδώ.
- Αφαιρέστε όλα τα στοιχεία:
clear()
- Διαγραφή ενός στοιχείου στην καθορισμένη θέση και λήψη της τιμής του.:
pop()
- Αναζητά στοιχεία με την καθορισμένη τιμή και αφαιρεί το πρώτο στοιχείο.:
remove()
- Διαγραφή καθορίζοντας τη θέση και το εύρος στη φέτα δείκτη:
del
- Διαγράψτε ομαδικά πολλά στοιχεία που πληρούν τα κριτήρια.:ένδειξη συμπερίληψης στον κατάλογο
Σημειώστε ότι οι λίστες μπορούν να αποθηκεύουν δεδομένα διαφορετικών τύπων και διαφέρουν αυστηρά από τους πίνακες. Χρησιμοποιήστε array (standard library) ή NumPy όταν θέλετε να χειριστείτε πίνακες για διεργασίες που απαιτούν μέγεθος μνήμης ή διεύθυνση μνήμης, ή για αριθμητικούς υπολογισμούς δεδομένων μεγάλης κλίμακας.
- Αφαιρέστε όλα τα στοιχεία: clear()
- Διαγραφή ενός στοιχείου στην καθορισμένη θέση και λήψη της τιμής του.: pop()
- Αναζητά στοιχεία με την καθορισμένη τιμή και αφαιρεί το πρώτο στοιχείο.: remove()
- Διαγραφή καθορίζοντας τη θέση και το εύρος στη φέτα δείκτη: del
- Διαγράψτε ομαδικά πολλά στοιχεία που πληρούν τα κριτήρια.: ένδειξη συμπερίληψης στον κατάλογο
Αφαιρέστε όλα τα στοιχεία: clear()
Στη μέθοδο clear() της λίστας, όλα τα στοιχεία αφαιρούνται, με αποτέλεσμα να προκύπτει μια κενή λίστα.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
l.clear()
print(l)
# []
Διαγραφή ενός στοιχείου στην καθορισμένη θέση και λήψη της τιμής του.: pop()
Η μέθοδος pop() μιας λίστας μπορεί να χρησιμοποιηθεί για τη διαγραφή ενός στοιχείου σε μια καθορισμένη θέση και τη λήψη της τιμής αυτού του στοιχείου.
Ο πρώτος (αρχικός) αριθμός είναι 0.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l.pop(0))
# 0
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l.pop(3))
# 4
print(l)
# [1, 2, 3, 5, 6, 7, 8, 9]
Μια αρνητική τιμή μπορεί επίσης να χρησιμοποιηθεί για να καθορίσει τη θέση από το τέλος (τελευταίο). Το τέλος (τελευταίο) είναι -1.
print(l.pop(-2))
# 8
print(l)
# [1, 2, 3, 5, 6, 7, 9]
Εάν το όρισμα παραλείπεται και δεν καθορίζεται θέση, διαγράφεται το στοιχείο που βρίσκεται στο τέλος (τελευταίο).
print(l.pop())
# 9
print(l)
# [1, 2, 3, 5, 6, 7]
Ο προσδιορισμός μιας μη υπάρχουσας θέσης θα οδηγήσει σε σφάλμα.
# print(l.pop(100))
# IndexError: pop index out of range
Σημειώστε ότι η pop(0), η οποία αφαιρεί το πρώτο στοιχείο, απαιτεί το ακόλουθο κόστος και δεν είναι αποδοτική λειτουργία. Δείτε την ακόλουθη σελίδα στο επίσημο wiki για την υπολογιστική πολυπλοκότητα διαφόρων πράξεων σε λίστες.O(n)
O(1)
Ο τύπος deque παρέχεται στην ενότητα collections της τυπικής βιβλιοθήκης ως τύπος που διαγράφει στοιχεία στην κορυφή με αυτό το κόστος. Για παράδειγμα, αν θέλετε να αντιμετωπίζετε τα δεδομένα ως ουρά (FIFO), είναι πιο αποδοτικό να χρησιμοποιήσετε τον τύπο deque.
Αναζητά στοιχεία με την καθορισμένη τιμή και αφαιρεί το πρώτο στοιχείο.: remove()
Η μέθοδος remove() της λίστας μπορεί να χρησιμοποιηθεί για την αναζήτηση στοιχείων με την ίδια τιμή με την καθορισμένη και την αφαίρεση του πρώτου στοιχείου.
l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
l.remove('Alice')
print(l)
# ['Bob', 'Charlie', 'Bob', 'Dave']
Εάν η λίστα περιέχει περισσότερα από ένα στοιχεία που ταιριάζουν με την καθορισμένη τιμή, θα αφαιρεθεί μόνο το πρώτο.
l.remove('Bob')
print(l)
# ['Charlie', 'Bob', 'Dave']
Εάν καθοριστεί μη υπάρχουσα τιμή, εμφανίζεται σφάλμα.
# l.remove('xxx')
# ValueError: list.remove(x): x not in list
Διαγραφή καθορίζοντας τη θέση και το εύρος στη φέτα δείκτη: del
Μπορείτε επίσης να χρησιμοποιήσετε τη δήλωση del για να αφαιρέσετε στοιχεία από τη λίστα.
Καθορίστε το στοιχείο που πρόκειται να διαγραφεί με βάση το δείκτη του. Ο πρώτος (αρχικός) δείκτης είναι 0 και ο τελευταίος (τελικός) δείκτης είναι -1.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
del l[0]
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
del l[-1]
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8]
del l[6]
print(l)
# [1, 2, 3, 4, 5, 6, 8]
Εάν καθορίσετε ένα εύρος με φέτες, μπορείτε να διαγράψετε πολλά στοιχεία ταυτόχρονα.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
del l[2:5]
print(l)
# [0, 1, 5, 6, 7, 8, 9]
l = list(range(10))
del l[:3]
print(l)
# [3, 4, 5, 6, 7, 8, 9]
l = list(range(10))
del l[4:]
print(l)
# [0, 1, 2, 3]
l = list(range(10))
del l[-3:]
print(l)
# [0, 1, 2, 3, 4, 5, 6]
Είναι επίσης δυνατό να καθορίσετε ολόκληρο το εύρος και να διαγράψετε όλα τα στοιχεία.
l = list(range(10))
del l[:]
print(l)
# []
[start:stop:step]
Εάν καθορίσετε το εύρος στη φέτα με αυτόν τον τρόπο και καθορίσετε αυξητικό βήμα, μπορείτε να διαγράψετε πολλά στοιχεία άλματος ταυτόχρονα.
l = list(range(10))
del l[2:8:2]
print(l)
# [0, 1, 3, 5, 7, 8, 9]
l = list(range(10))
del l[::3]
print(l)
# [1, 2, 4, 5, 7, 8]
Για περισσότερες πληροφορίες σχετικά με τον τεμαχισμό, ανατρέξτε στο ακόλουθο άρθρο.
Διαγράψτε ομαδικά πολλά στοιχεία που πληρούν τα κριτήρια.: ένδειξη συμπερίληψης στον κατάλογο
Η διαδικασία αφαίρεσης στοιχείων που ικανοποιούν τις συνθήκες είναι ισοδύναμη με τη διαδικασία αποχώρησης (εξαγωγής) στοιχείων που δεν ικανοποιούν τις συνθήκες. Για αυτού του είδους την επεξεργασία χρησιμοποιείται ο συμβολισμός της κατανόησης λίστας.
- Σχετικά άρθρα:Χρήση του συμβολισμού κατανόησης λίστας της Python
Ένα παράδειγμα αφαίρεσης περιττών ή ζυγών στοιχείων (= αφήνοντας ζυγά ή περιττά στοιχεία) παρουσιάζεται παρακάτω.%
Αυτός είναι ο τελεστής υπολοίπου.i % 2
Αυτό είναι το υπόλοιπο του i δια 2.
Στη σημειογραφία κατανόησης λίστας, δημιουργείται μια νέα λίστα. Σε αντίθεση με τις μεθόδους τύπου λίστας που παρουσιάστηκαν μέχρι τώρα, η αρχική λίστα παραμένει αμετάβλητη.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print([i for i in l if i % 2 == 0])
# [0, 2, 4, 6, 8]
print([i for i in l if i % 2 != 0])
# [1, 3, 5, 7, 9]
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Άλλα παραδείγματα. Ανάλογα με την υπό συνθήκη έκφραση είναι δυνατή μια ποικιλία επεξεργασιών.
l = ['Alice', 'Bob', 'Charlie', 'Bob', 'David']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'David']
print([s for s in l if s != 'Bob'])
# ['Alice', 'Charlie', 'David']
print([s for s in l if s.endswith('e')])
# ['Alice', 'Charlie']
Αν θέλετε να αφαιρέσετε διπλά στοιχεία, χρησιμοποιήστε τον τύπο set set.
print(list(set(l)))
# ['David', 'Alice', 'Charlie', 'Bob']