Python Κατανόηση λίστας, Προσάρτηση, Ταξινόμηση, Μήκος [ΠΑΡΑΔΕΙΓΜΑΤΑ]

Τι είναι ένα Python Λίστα?

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

Παραδείγματα Python κονίστρα:

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

Παραδείγματα ομοιογενών καταλόγων περιλαμβάνουν:

list of integers =  [1, 2, 3, 8, 33]
list of animals = ['dog', 'cat', 'goat']
list of names = ['John', 'Travis', 'Sheila']
list of floating numbers = [2.2, 4.5, 9.8, 10.4]

Παραδείγματα ετερογενών λιστών περιλαμβάνουν:

[2, 'cat', 34.33, 'Travis']
[2.22, 33, 'pen']

Πρόσβαση σε τιμές μέσα σε λίστες

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

list = [3, 22, 30, 5.3, 20]
  • Η πρώτη τιμή στην παραπάνω λίστα, 3, έχει δείκτη 0
  • Η δεύτερη τιμή, 22, έχει δείκτη 1
  • Η τρίτη τιμή, 30, έχει δείκτη 2

και ούτω καθεξής. Για να αποκτήσετε πρόσβαση σε καθεμία από τις τιμές από τη λίστα, θα χρησιμοποιήσετε:

list[0] to access 3
list[1] to access 22
list[2] to access 30
list[3] to access 5.3
list[4] to access 20

Το τελευταίο μέλος μιας λίστας μπορεί επίσης να προσπελαστεί χρησιμοποιώντας το ευρετήριο -1. Για παράδειγμα,

list[-1] = 20

Python Τεμαχισμός λίστας

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

list[:] = [3, 22, 30, 5.3, 20] (all the members of the list];
list[1:3] = [22, 30] (members of the list from index 1 to index 3, without the member at index 3);
list[:4] = [3, 22, 30, 5.3] (members of the list from index 0 to index 4, without the member at index 4)
list[2:-1] = [30, 5.3] (members of the list from index 2, which is the third element, to the second to the last element in the list, which is 5.3).

Python Οι λίστες είναι αποκλειστικές στο επάνω όριο, και αυτό σημαίνει ότι το τελευταίο ευρετήριο κατά την κοπή της λίστας συνήθως αγνοείται. Γι' αυτό

list[2:-1] = [30, 5.3]

, και όχι [30, 5.3, 20]. Το ίδιο ισχύει για όλα τα άλλα παραδείγματα τεμαχισμού λίστας που δίνονται παραπάνω.

Ενημέρωση λιστών

Ας υποθέσουμε ότι έχετε μια λίστα = [φυσική, χημεία, μαθηματικά] και θέλετε να αλλάξετε τη λίστα σε [βιολογία, χημεία, μαθηματικά], αλλάζοντας ουσιαστικά το μέλος στο δείκτη 0. Αυτό μπορεί εύκολα να γίνει με την ανάθεση αυτού του δείκτη στο νέο μέλος που θέλετε.

Αυτό είναι,

list = [physics, chemistry, mathematics]
    list[0] = biology
    print(list)

Αποτέλεσμα: [βιολογία, χημεία, μαθηματικά]

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

Για να δώσω ένα άλλο παράδειγμα? Ας υποθέσουμε ότι έχετε μια λίστα που ονομάζεται ακέραιοι και περιέχει τους αριθμούς [2, 5, 9, 20, 27]. Για να αντικαταστήσετε το 5 σε αυτήν τη λίστα με το 10, μπορείτε να το κάνετε με:

integers = [2, 5, 9, 20, 27]
           integers[1] = 10
           print(integers)

>>> [2, 10, 9, 20, 27]

Για να αντικαταστήσετε το τελευταίο μέλος της λίστας ακεραίων, που είναι το 27, με έναν ελεύθερο αριθμό όπως το 30.5, θα χρησιμοποιούσατε:

integers = [2, 5, 9, 20, 27]
           integers[-1] = 30.5
           print(integers)

>>> [2, 5, 9, 20, 30.5]

Διαγραφή στοιχείων λίστας

Υπάρχουν 3 Python μέθοδοι για τη διαγραφή στοιχείων λίστας: list.remove(), list.pop() και del operator. Η μέθοδος Remove παίρνει το συγκεκριμένο στοιχείο που πρέπει να αφαιρεθεί ως όρισμα ενώ τα pop και del παίρνουν ως όρισμα το ευρετήριο του στοιχείου που θα αφαιρεθεί. Για παράδειγμα:

λίστα = [3, 5, 7, 8, 9, 20]

Για να διαγράψετε 3 (το 1ο στοιχείο) από τη λίστα, θα μπορούσατε να χρησιμοποιήσετε:

  • list.remove(3) ή
  • list.pop[0] ή
  • del list[0]

Για να διαγράψετε το 8, το στοιχείο στο ευρετήριο 3, από τη λίστα, θα μπορούσατε να χρησιμοποιήσετε:

  • list.remove(8), ή
  • list.pop[3]

Προσάρτηση στοιχείων λίστας

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

Για παράδειγμα:

list_1 = [3, 5, 7, 8, 9, 20]
    list_1.append(3.33)
    print(list_1)

    >>> list_1 = [3, 5, 7, 8, 9, 20, 3.33]

    list_1.append("cats")
    print(list_1)
    >>> list_1 = [3, 5, 7, 8, 9, 20, 3.33, "cats"]

Λίστα ενσωματωμένων συναρτήσεων (μέθοδοι)

Ακολουθεί μια λίστα ενσωματωμένων συναρτήσεων και μεθόδων λίστας με τις περιγραφές τους:

  • len(λίστα): Αυτό δίνει το μήκος της λίστας ως έξοδο. Για παράδειγμα:
numbers = [2, 5, 7, 9]
print(len(numbers))
>>> 4
  • μέγ.(λίστα): επιστρέφει το στοιχείο στη λίστα με τη μέγιστη τιμή. Για παράδειγμα:
numbers = [2, 5, 7, 9]
print(max(numbers))
>>> 9
  • min(λίστα): επιστρέφει το στοιχείο στη λίστα με την ελάχιστη τιμή. Για παράδειγμα:
numbers = [2, 5, 7, 9]
print(min(numbers))
>>> 2
  • λίστα (πλούσια): μετατρέπει ένα πολλαπλό αντικείμενο σε μια λίστα. Για παράδειγμα;
animals = (cat, dog, fish, cow)
print(list(animals))
>>> [cat, dog, fish, cow]
numbers = [2, 5, 7, 9]
numbers.append(15)
print(numbers)
>>> [2, 5, 7, 9, 15]
  • λίστα.λαϊκός(ευρετήριο): αφαιρεί το στοιχείο στο καθορισμένο ευρετήριο από τη λίστα. Για παράδειγμα;
numbers = [2, 5, 7, 9, 15]
numbers.pop(2)
print(numbers)
>>> [2, 5, 9, 15]
  • λίστα.αφαίρεση(στοιχείο): διαγράφει το στοιχείο από τη λίστα. Για παράδειγμα;
values = [2, 5, 7, 9]
values.remove(2)
print(values)
>>> [5, 7, 9]
  • λίστα.αντίστροφα(): αντιστρέφει τα αντικείμενα της λίστας. Για παράδειγμα;
values = [2, 5, 7, 10]
values.reverse()
print(values)
>>> [10, 7, 5, 2]
  • λίστα.ευρετήριο(στοιχείο): για να λάβετε την τιμή ευρετηρίου ενός στοιχείου στη λίστα. Για παράδειγμα;
animals = ['cat', 'dog', 'fish', 'cow', 'goat']
fish_index = animals.index('fish')
print(fish_index)
>>> 2
  • άθροισμα(λίστα): για να λάβετε το άθροισμα όλων των τιμών στη λίστα, εάν οι τιμές είναι όλοι αριθμοί (ακέραιοι ή δεκαδικοί). Για παράδειγμα;
values = [2, 5, 10]
sum_of_values = sum(values)
print(sum_of_values)

>>> 17

Εάν η λίστα περιέχει οποιοδήποτε στοιχείο που δεν είναι αριθμός, όπως μια συμβολοσειρά, η μέθοδος άθροισης δεν θα λειτουργούσε. Θα λάβετε ένα σφάλμα λέγοντας: "Τυπογραφικό λάθος: μη υποστηριζόμενοι τύποι τελεστών για +: 'int' και 'str'"

  • list.sort(): για τακτοποίηση μιας λίστας ακεραίων, αριθμών κινητής υποδιαστολής ή συμβολοσειρών, σε αύξουσα ή φθίνουσα σειρά. Για παράδειγμα:
values = [1, 7, 9, 3, 5]
# To sort the values in ascending order:
values.sort()
print(values)

>>> [1, 3, 5, 7, 9]

Ένα άλλο παράδειγμα:

values = [2, 10, 7, 14, 50]
# To sort the values in descending order:
values.sort(reverse = True)
print(values)

>>> [50, 14, 10, 7, 2]

Μια λίστα με συμβολοσειρές μπορεί επίσης να ταξινομηθεί, είτε αλφαβητικά είτε κατά μήκος των συμβολοσειρών. Για παράδειγμα;

# to sort the list by length of the elements
strings = ['cat', 'mammal', 'goat', 'is']
sort_by_alphabet = strings.sort()
sort_by_length = strings.sort(key = len)
print(sort_by_alphabet)
print(sort_by_length)

>>> ['cat', 'goat', 'is', 'mammal']
        ['is', 'cat', 'goat', 'mammal']

Μπορούμε να ταξινομήσουμε την ίδια λίστα αλφαβητικά χρησιμοποιώντας 'strings.

Περιήγηση στις λίστες

Η επαναφορά λιστών μπορεί να γίνει με τον ίδιο ακριβώς τρόπο όπως κάθε άλλη συνάρτηση επαναφοράς Python. Με αυτόν τον τρόπο, μια μέθοδος μπορεί να εκτελεστεί σε πολλά στοιχεία μιας λίστας ταυτόχρονα. Για παράδειγμα:

λίστα = [10, 20, 30, 40, 50, 60, 70].

Για να περιηγηθείτε σε όλα τα στοιχεία αυτής της λίστας, και ας πούμε, προσθέστε 10 σε κάθε στοιχείο:

for elem in list:
        elem = elem + 5
        print(elem)
    
    >>>>15
        25
        35
        45
        55
        65
        75

Για να περιηγηθείτε στα τρία πρώτα στοιχεία της λίστας και να τα διαγράψετε όλα.

for elem in list[:3]:
    list.remove(elem)

    >>>list = [40, 50, 60, 70]

Για να κάνετε κύκλο μέσα από το 3rd (ευρετήριο 2) στο τελευταίο στοιχείο της λίστας και προσαρτήστε τα σε μια νέα λίστα που ονομάζεται new_list:

new_list = []	
    for elem in list[2:]:
        new_list.append(elem)
        print(“New List: {}”.format(new_list))
    
   Output:
	New List: [30, 40, 50, 60, 70]

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

Κατανοή λιστών Python

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

Για παράδειγμα; Ας υποθέσουμε ότι θέλετε να δημιουργήσετε μια λίστα που περιέχει τα τετράγωνα όλων των αριθμών από το 1 έως το 9:

list_of squares = []
    for int in range(1, 10):
        square = int ** 2
        list_of_squares.append(square)

    print(list_of_squares)

List_of_squares using for loop:

    [1, 4, 9, 16, 25, 36, 49, 64, 81]

Για να κάνετε το ίδιο πράγμα με τις κατανοήσεις λιστών:

list_of_squares_2 = [int**2 for int in range(1, 10)]

    print('List of squares using list comprehension: {}'.format(list_of_squares_2))

Output using list comprehension:

    [1, 4, 9, 16, 25, 36, 49, 64, 81]

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

Ακολουθεί ένας πίνακας που περιέχει ορισμένες λειτουργίες και μεθόδους λίστας και τις περιγραφές τους.

Ενσωματωμένες Λειτουργίες

ΛΕΙΤΟΥΡΓΊΑ ΠΕΡΙΓΡΑΦΉ
Στρογγυλό() Στρογγυλοποιεί τον αριθμό που διαβιβάστηκε ως όρισμα σε έναν καθορισμένο αριθμό ψηφίων και επιστρέφει την τιμή κινητής υποδιαστολής
Min() επιστροφή ελάχιστου στοιχείου μιας δεδομένης λίστας
Μέγιστη() επιστροφή μέγιστου στοιχείου μιας δεδομένης λίστας
Λέν () Επιστρέφει το μήκος της λίστας
Απαριθμώ() Αυτή η ενσωματωμένη συνάρτηση δημιουργεί τόσο τις τιμές όσο και τα ευρετήρια των στοιχείων σε ένα επαναληπτικό, επομένως δεν χρειάζεται να μετράμε χειροκίνητα
Φίλτρο() ελέγχει εάν κάθε στοιχείο μιας λίστας είναι αληθές ή όχι
Λάμδα Μια έκφραση που μπορεί να εμφανιστεί σε μέρη όπου το def (για τη δημιουργία συναρτήσεων) δεν είναι συντακτικό, μέσα σε μια λίστα κυριολεκτικά ή ορίσματα κλήσης μιας συνάρτησης
Χάρτης() επιστρέφει μια λίστα με τα αποτελέσματα μετά την εφαρμογή της δεδομένης συνάρτησης σε κάθε στοιχείο ενός δεδομένου επαναληπτικού
Συσσωρεύω() Εφαρμογή μιας συγκεκριμένης συνάρτησης που μεταβιβάζεται στο όρισμά της σε όλα τα στοιχεία της λίστας επιστρέφει μια λίστα που περιέχει τα ενδιάμεσα αποτελέσματα
Αθροισμα() Επιστρέφει το άθροισμα όλων των αριθμών στη λίστα
Cmp() Χρησιμοποιείται για τη σύγκριση δύο λιστών και επιστρέφει 1 εάν η πρώτη λίστα είναι μεγαλύτερη από τη δεύτερη λίστα.
Κύριο θέμα Εισαγάγετε στοιχείο στη λίστα σε συγκεκριμένη θέση

Μέθοδοι λίστας

ΛΕΙΤΟΥΡΓΊΑ ΠΕΡΙΓΡΑΦΉ
προσαρτώ() Προσθέτει ένα νέο στοιχείο στο τέλος της λίστας
Σαφή() Αφαιρεί όλα τα στοιχεία από τη λίστα
Αντίγραφο() Επιστρέφει ένα αντίγραφο της αρχικής λίστας
Επεκτείνω() Προσθέστε πολλά στοιχεία στο τέλος της λίστας
Μετρώ() Επιστρέφει τον αριθμό των εμφανίσεων ενός συγκεκριμένου στοιχείου σε μια λίστα
Δείκτης() Επιστρέφει το ευρετήριο ενός συγκεκριμένου στοιχείου μιας λίστας
Κρότος() Διαγράφει στοιχείο από τη λίστα σε συγκεκριμένο ευρετήριο (διαγραφή ανά θέση)
Αφαιρώ() Διαγράφει το καθορισμένο στοιχείο από τη λίστα (διαγραφή ανά τιμή)
Reverse() Μέθοδος αντιστροφής επί τόπου που αντιστρέφει τη σειρά των στοιχείων της λίστας

Σύνοψη

  • Μια λίστα είναι ακριβώς αυτό που ακούγεται, ένα δοχείο που περιέχει διαφορετικά Python αντικείμενα, τα οποία θα μπορούσαν να είναι ακέραιοι, λέξεις, τιμές κ.λπ.
  • Python Οι λίστες μπορεί να είναι ομοιογενείς, σημαίνει ότι μπορούν να περιέχουν τον ίδιο τύπο αντικειμένων. ή ετερογενή, που περιέχει διαφορετικούς τύπους αντικειμένων.
  • Για πρόσβαση σε τιμές εντός λιστών, μπορεί να χρησιμοποιηθεί το ευρετήριο των αντικειμένων μέσα στις λίστες.
  • Ο τεμαχισμός λίστας είναι η μέθοδος διαχωρισμού ενός υποσυνόλου μιας λίστας και οι δείκτες των αντικειμένων της λίστας χρησιμοποιούνται επίσης για αυτό.
  • Τρεις μέθοδοι για τη διαγραφή στοιχείων λίστας είναι: 1)list.remove(), 2)list.pop() και 3)del operator
  • Η μέθοδος προσάρτησης χρησιμοποιείται για την προσάρτηση στοιχείων. Αυτό προσθέτει το στοιχείο στο τέλος της λίστας.
  • Μέθοδος βρόχου του Python Το πρόγραμμα μπορεί να εκτελεστεί σε πολλαπλά στοιχεία μιας λίστας δεδομένων ταυτόχρονα.
  • Κατανοήσεις λίστας είναι Python συναρτήσεις που χρησιμοποιούνται για τη δημιουργία νέων ακολουθιών (όπως λίστες, λεξικά κ.λπ.) χρησιμοποιώντας ακολουθίες που έχουν ήδη δημιουργηθεί.