Μετά από αυτό σε διαγράφω από τη λίστα μου 1/3

Image result for list erase

Ένα θέμα που προέκυψε διδάσκοντας στην τάξη ήταν πως μπορούμε να διαγράψουμε κάποιο στοιχείο από μία λίστα στην Python.

Ας διερευνήσουμε λοιπόν λίγο τη διαγραφή στοιχείων από μία λίστα.

>>> a_list = [1,3,5,7,11,3,7,5,11,3]
>>> # Η μέθοδος που αναφέρεται στη 2η έκδοση του βιβλίου είναι η pop
>>> # pop(index)
>>> a_list.pop() # αφαίρεση του τελευταίου στοιχείου εφόσον δεν δόθηκε κάποιος δείκτης
3
>>> a_list.pop(2)
5
>>> a_list
[1, 3, 7, 11, 3, 7, 5, 11]

Παρατηρείστε ότι δεν αφαιρείται απλά ένα στοιχείο αλλά επιστρέφεται κιόλας οπότε μπορούμε να το πάρουμε και σε μία μεταβλητή πχ

>>> item = a_list.pop(1)
 >>> print item
 3
 >>> print a_list
 [1, 7, 11, 3, 7, 5, 11]

Η παραπάνω μέθοδος (pop) είναι και η μόνη που υπάρχει πλέον στα διδακτικά πακέτα.

Υπάρχουν και άλλες; βέβαια αλλά δεν “νομιμοποιούμαστε” να τις χρησιμοποιήσουμε στον κώδικα που θα δώσουμε στις εξετάσεις παρά μόνο στα προγράμματά μας (κανονικά πρέπει να λέμε στα σενάριά μας our scripts). όπως:

Η συνάρτηση (και όχι μέθοδος) del.

>>> a_list
[1, 7, 11, 3, 7, 5, 11]
>>> del a_list[1]
>>> a_list
[1, 11, 3, 7, 5, 11]
>>> # del a_list[index]

Η del σε αντίθεση με την pop, δεν επιστρέφει κάτι.

Επίσης για τη διαγραφή στοιχείων υπάρχει και η μέθοδος remove.

>>> a_list
[1, 11, 3, 7, 5, 11]
>>> # a_list.remove(value)
[1, 11, 3, 5, 11]
>>> a_list.remove(11)
>>> a_list
[1, 3, 5, 11]

Παρατηρείστε ότι η remove διαγράφει με βάση την τιμή και όχι την θέση, οπότε εάν ένα στοιχείο εμφανίζεται περισσότερες από μία φορές διαγράφει μόνο το πρώτο που θα βρει.

ΚΑΙ ΤΩΡΑ … προκύπτει το ερώτημα πώς μπορούμε να διαγράψουμε εντελώς ένα στοιχείο που εμφανίζεται περισσότερες από μία φορές από μία λίστα; ΟΕΟ

…. Σκεφτείτε το λίγο (κάντε κανένα σχόλιο με τις προτάσεις σας) και η απάντηση …

Image result for προσεχώς

 

 

 

Κατηγορίες: Προγραμματισμός. Προσθήκη στους σελιδοδείκτες.

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *