Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

5.2 Λίστες στην Python

Λίστες στην Python

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

Δημιουργία Λίστας

Οι λίστες συνήθως αποθηκεύουν ομογενή δεδομένα, δηλαδή τιμές του ίδιου τύπου δεδομένων. Για παράδειγμα, η λίστα c περιέχει πέντε ακέραιους αριθμούς:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
c = [11, 22, 33, 44, 55]
c = [11, 22, 33, 44, 55]
c = [11, 22, 33, 44, 55]

Ωστόσο, μπορούν επίσης να αποθηκεύουν ετερογενή δεδομένα, δηλαδή δεδομένα διαφορετικών τύπων. Για παράδειγμα, η ακόλουθη λίστα περιέχει το όνομα (συμβολοσειρά), το επώνυμο (συμβολοσειρά), τον μέσο όρο βαθμών (αριθμός με κινητή υποδιαστολή) και το έτος αποφοίτησης ενός μαθητή (ακέραιος):

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
student = ["Νίκος", "Παπαδόπουλος", 3.7, 2022]
student = ["Νίκος", "Παπαδόπουλος", 3.7, 2022]
student = ["Νίκος", "Παπαδόπουλος", 3.7, 2022]

Πρόσβαση στα Στοιχεία μιας Λίστας

Για να αναφερθείτε σε ένα στοιχείο λίστας, γράψτε το όνομα της λίστας ακολουθούμενο από τον δείκτη (index) του στοιχείου, μέσα σε αγκύλες ([]). Ο δείκτης δηλώνει τη θέση του στοιχείου στη λίστα. Για παράδειγμα, στη λίστα c, το πρώτο στοιχείο έχει δείκτη 0, οπότε αναφερόμαστε σε αυτό ως c[0], ενώ το τελευταίο στοιχείο έχει δείκτη 4 και αναφερόμαστε σε αυτό ως c[4]:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
first_element = c[0] # 11
last_element = c[4] # 55
first_element = c[0] # 11 last_element = c[4] # 55
first_element = c[0]  # 11
last_element = c[4]  # 55

Οι λίστες είναι μια θεμελιώδης δομή δεδομένων στην Python και πολλές από τις δυνατότητές τους εφαρμόζονται και σε άλλους τύπους ακολουθιών.

Καθορισμός του Μήκους μιας Λίστας

Για να πάρετε το μήκος μιας λίστας, χρησιμοποιήστε την ενσωματωμένη συνάρτηση len:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
c = [11, 22, 33, 44, 55]
length = len(c) # Επιστρέφει το μήκος της λίστας c
c = [11, 22, 33, 44, 55] length = len(c) # Επιστρέφει το μήκος της λίστας c
c = [11, 22, 33, 44, 55]
length = len(c)  # Επιστρέφει το μήκος της λίστας c

Πρόσβαση στα Στοιχεία από το Τέλος της Λίστας με Αρνητικούς Δείκτες

Μπορείτε επίσης να προσπελάσετε τα στοιχεία μιας λίστας από το τέλος της χρησιμοποιώντας αρνητικούς δείκτες. Για παράδειγμα, το τελευταίο στοιχείο της λίστας c (c[4]) μπορεί να προσπελαστεί με c[-1] και το πρώτο στοιχείο με c[-5]:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
last_element = c[-1] # Επιστρέφει 55, το τελευταίο στοιχείο της λίστας
first_element = c[-5] # Επιστρέφει 11, το πρώτο στοιχείο της λίστας
last_element = c[-1] # Επιστρέφει 55, το τελευταίο στοιχείο της λίστας first_element = c[-5] # Επιστρέφει 11, το πρώτο στοιχείο της λίστας
last_element = c[-1]  # Επιστρέφει 55, το τελευταίο στοιχείο της λίστας
first_element = c[-5] # Επιστρέφει 11, το πρώτο στοιχείο της λίστας

Οι Δείκτες Πρέπει να Είναι Ακέραιοι ή Ακεραίες Εκφράσεις

Ένας δείκτης πρέπει να είναι ακέραιος αριθμός ή μια ακέραια έκφραση (ή ένα τμήμα, όπως θα δούμε σύντομα). Η χρήση μη ακέραιας τιμής για δείκτη προκαλεί ένα TypeError.

Οι Λίστες Είναι Μεταβαλλόμενες (Mutable)

Οι λίστες είναι μεταβαλλόμενες, δηλαδή τα στοιχεία τους μπορούν να τροποποιηθούν:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
c[0] = 99 # Αλλάζει το πρώτο στοιχείο της λίστας c σε 99
c[0] = 99 # Αλλάζει το πρώτο στοιχείο της λίστας c σε 99
c[0] = 99  # Αλλάζει το πρώτο στοιχείο της λίστας c σε 99

Επίσης, μπορείτε να εισάγετε και να διαγράφετε στοιχεία, αλλάζοντας έτσι το μήκος της λίστας.

Ορισμένες Ακολουθίες Είναι Αμετάβλητες (Immutable)

Στην Python, οι ακολουθίες συμβολοσειρών και πλειάδων (tuples) είναι αμετάβλητες – δεν μπορούν να τροποποιηθούν. Μπορείτε να προσπελάσετε τους μεμονωμένους χαρακτήρες μιας συμβολοσειράς, αλλά η προσπάθεια αντιστοίχισης νέας τιμής σε έναν από τους χαρακτήρες προκαλεί TypeError.

Προσπάθεια Πρόσβασης σε Μη Υπάρχον Στοιχείο

Η χρήση ενός δείκτη που είναι εκτός των ορίων μιας λίστας, πλειάδας ή συμβολοσειράς προκαλεί IndexError.

Χρήση Στοιχείων Λίστας σε Εκφράσεις

Τα στοιχεία των λιστών μπορούν να χρησιμοποιηθούν ως μεταβλητές σε εκφράσεις:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
a_list = [1, 2, 3]
result = a_list[0] + a_list[1] # Προσθέτει τα πρώτα δύο στοιχεία της λίστας
a_list = [1, 2, 3] result = a_list[0] + a_list[1] # Προσθέτει τα πρώτα δύο στοιχεία της λίστας
a_list = [1, 2, 3]
result = a_list[0] + a_list[1]  # Προσθέτει τα πρώτα δύο στοιχεία της λίστας

Προσθήκη στοιχείων σε Λίστα με τον Τελεστή +=

Ξεκινώντας από μια κενή λίστα [], μπορείτε να χρησιμοποιήσετε μια εντολή for και τον τελεστή += για να προσθέσετε τις τιμές από το 1 έως το 5 στη λίστα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
a_list = []
for number in range(1, 6):
a_list += [number] # Προσθέτει κάθε φορά το number στη λίστα
a_list = [] for number in range(1, 6): a_list += [number] # Προσθέτει κάθε φορά το number στη λίστα
a_list = []
for number in range(1, 6):
    a_list += [number]  # Προσθέτει κάθε φορά το number στη λίστα

Όταν το αριστερό μέρος του += είναι λίστα, το δεξιό μέρος πρέπει να είναι μια περιηγήσιμη συλλογή (iterable), διαφορετικά θα προκύψει TypeError. Στο παράδειγμα του αποσπάσματος, οι αγκύλες γύρω από το number δημιουργούν μια λίστα με ένα στοιχείο, το οποίο προ

στίθεται στην a_list. Αν το δεξιό μέρος περιέχει πολλαπλά στοιχεία, το += τα προσθέτει όλα. Για παράδειγμα, το ακόλουθο παράδειγμα προσθέτει τους χαρακτήρες της συμβολοσειράς ‘Python’ στη λίστα letters:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
letters = []
letters += 'Python' # Προσθέτει όλους τους χαρακτήρες στη λίστα letters
letters = [] letters += 'Python' # Προσθέτει όλους τους χαρακτήρες στη λίστα letters
letters = []
letters += 'Python'  # Προσθέτει όλους τους χαρακτήρες στη λίστα letters

Αν το δεξιό μέρος του += είναι πλειάδα, τα στοιχεία της πλειάδας προστίθενται επίσης στη λίστα. Αργότερα στο κεφάλαιο, θα χρησιμοποιήσουμε τη μέθοδο append της λίστας για να προσθέσουμε στοιχεία σε μια λίστα.

Συνένωση Λιστών με τον Τελεστή +

Μπορείτε να συνενώσετε δύο λίστες, δύο πλειάδες (tuples) ή δύο συμβολοσειρές χρησιμοποιώντας τον τελεστή +. Το αποτέλεσμα είναι μια νέα ακολουθία του ίδιου τύπου που περιέχει τα στοιχεία του αριστερού τελεστέα ακολουθούμενα από τα στοιχεία του δεξιού τελεστέα. Οι αρχικές ακολουθίες παραμένουν αμετάβλητες:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
list1 = [1, 2, 3]
list2 = [4, 5, 6]
concatenated_list = list1 + list2 # [1, 2, 3, 4, 5, 6]
list1 = [1, 2, 3] list2 = [4, 5, 6] concatenated_list = list1 + list2 # [1, 2, 3, 4, 5, 6]
list1 = [1, 2, 3]
list2 = [4, 5, 6]
concatenated_list = list1 + list2  # [1, 2, 3, 4, 5, 6]

Ένα TypeError συμβαίνει εάν τα δύο τμήματα του τελεστή + είναι διαφορετικών τύπων ακολουθιών – για παράδειγμα, η συνένωση μιας λίστας με μια πλειάδα είναι λάθος.

Χρήση των for και range για Πρόσβαση στους Δείκτες και τις Τιμές της Λίστας

Τα στοιχεία των λιστών μπορούν επίσης να προσπελαστούν μέσω των δεικτών τους και του τελεστή προσπέλασης []:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
for i in range(len(concatenated_list)):
print(concatenated_list[i])
for i in range(len(concatenated_list)): print(concatenated_list[i])
for i in range(len(concatenated_list)):
    print(concatenated_list[i])

Η κλήση της συνάρτησης range(len(concatenated_list)) παράγει μια ακολουθία ακέραιων που αντιπροσωπεύουν τους δείκτες της concatenated_list (σε αυτή την περίπτωση, από το 0 έως το 4). Όταν κάνετε looping με αυτόν τον τρόπο, πρέπει να διασφαλίσετε ότι οι δείκτες παραμένουν εντός των ορίων. Σύντομα, θα δείξουμε έναν ασφαλέστερο τρόπο για την πρόσβαση στους δείκτες και τις τιμές των στοιχείων χρησιμοποιώντας την ενσωματωμένη συνάρτηση enumerate.

Τελεστές Σύγκρισης

Μπορείτε να συγκρίνετε ολόκληρες λίστες στοιχείο προς στοιχείο χρησιμοποιώντας τελεστές σύγκρισης. Αυτό σημαίνει ότι μπορείτε να ελέγξετε αν δύο λίστες είναι ίσες, μεγαλύτερες ή μικρότερες σε σχέση μεταξύ τους, βάσει της σειράς και των τιμών των στοιχείων τους.

12 Ιανουαρίου, 2024
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων