Οι Λίστες στην γλώσσα python
Η γλώσσα προγραμματισμού python γνωρίζει μια σειρά από τύπους δεδομένων ένωσης, που χρησιμοποιούνται για την ομαδοποίηση τιμών. Η πιο ευέλικτη είναι η λίστα, η οποία μπορεί να γραφτεί ως μια λίστα τιμών διαχωρισμένων με κόμμα (στοιχεία λίστας) μέσα σε αγκύλες. Οι λίστες επιτρέπεται να περιέχουν στοιχεία διαφορετικών τύπων, αλλά συνήθως τα στοιχεία τους έχουν τον ίδιο τύπο.
Ένα παράδειγμα:
>>> squares = [1, 4, 9, 16, 25] >>> squares [1, 4, 9, 16, 25]
Όπως και οι συμβολοσειρές (αλλά και άλλες ενσωματωμένου τύπου ακολουθίες), οι λίστες μπορούν να γίνουν indexed και sliced. Ένα παράδειγμα:
>>> squares[0] # indexing: επιστρέφει το στοιχείο της πρώτης θέσης (πάντα η πρώτη θέση είναι η θέση μηδέν (0)) 1 >>> squares[-1] # επιστρέφει το πρώτο στοιχείο από το τέλος της λίστας 25 >>> squares[-3:] # slicing: επιστρέφει νέα λίστα με τα τελευταία 3 στοιχεία της προηγούμενης [9, 16, 25]
Όλες οι εντολές slice κάνουν χρήση του συμβόλου : και επιστρέφουν μια νέα λίστα που περιέχει τα ζητούμενα στοιχεία. Αυτό σημαίνει ότι η ακόλουθη εντολή slice, που περιέχει το σύμβολο : αλλά καμμία ένδειξη για την ποσότητα των στοιχείων, επιστρέφει ένα ολόκληρο αντίγραφο της λίστας:
>>> squares[:] [1, 4, 9, 16, 25]
Πράξεις σε λίστες
Οι λίστες υποστηρίζουν επίσης λειτουργίες πράξεων με αριθμητικούς τελεστές:
>>> squares + [36, 49, 64, 81, 100] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Σε αντίθεση με τις συμβολοσειρές, οι οποίες είναι αμετάβλητες, οι λίστες είναι μεταβλητός τύπος, δηλαδή είναι δυνατόν να αλλάξουμε το περιεχόμενό τους. Το παρακάτω παράδειγμα κάνει κάτι τέτοιο κατανοητό:
>>> cubes = [1, 8, 27, 65, 125] # έστω ότι θέλουμε να αλλάξουμε κάτι π.χ το στοιχείο 65 >>> cubes[3] = 64 # αντικατέστησε στην θέση 3 την παλιά τιμή (65) με την νέα (64) >>> cubes [1, 8, 27, 64, 125]
Πρόσθεση νέων στοιχείων
Μπορούμε επίσης να προσθέσουμε νέα στοιχεία στο τέλος της λίστας, χρησιμοποιώντας τη μέθοδο append() – για παράδειγμα:
>>> cubes.append(216) # πρόσθεσε στο τέλος στην λίστα cube το 216 >>> cubes.append(7 ** 3) # μπορούμε να κάνουμε και πράξεις - εδώ το 7 υψωμένο στην τρίτη (3) >>> cubes [1, 8, 27, 64, 125, 216, 343]
Αναθέσεις με slice
Ανάθεση με slice είναι επίσης δυνατή και αυτό μπορεί ακόμη και να αλλάξει το μέγεθος της λίστας ή να την καταργήσουμε εξ ολοκλήρου. Για παράδειγμα:
>>> # δημιουργία λίστας με κάποια γράμματα: >>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] >>> letters ['a', 'b', 'c', 'd', 'e', 'f', 'g'] >>> # αντικατάσταση κάποιων τιμών - εδώ από την θέση 2 για 3 συνεχόμενες θέσεις: >>> letters[2:5] = ['C', 'D', 'E'] >>> letters ['a', 'b', 'C', 'D', 'E', 'f', 'g'] >>> # τώρα σβήνουμε τα στοιχεία που μόλις βάλαμε: >>> letters[2:5] = [] >>> letters ['a', 'b', 'f', 'g'] >>> # άδειασμα όλης της λίστας: >>> letters[:] = [] >>> letters []
Με την ενσωματωμένη συνάρτηση len() μπορούμε να πάρουμε το μέγεθος μιας λίστας:
>>> letters = ['a', 'b', 'c', 'd'] >>> len(letters) 4
Εμφωλιασμένες λίστες
Τέλος, είναι δυνατόν να έχουμε εμφωλιασμένες λίστες (λίστες που περιέχουν άλλες λίστες), για παράδειγμα:
>>> a = ['a', 'b', 'c'] >>> n = [1, 2, 3] >>> x = [a, n] >>> x [['a', 'b', 'c'], [1, 2, 3]] >>> x[0] ['a', 'b', 'c'] >>> x[0][1] 'b'