Python Κατανόηση λίστας: Προσθήκη, Ταξινόμηση, Μήκος

⚡ Έξυπνη Σύνοψη

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

  • 📋 Αυτό που είναι: A Python Η λίστα είναι ένα μεταβλητό, διατεταγμένο κοντέινερ γραμμένο σε αγκύλες.
  • 🔢 Ευρετηρίαση: Αποκτήστε πρόσβαση σε στοιχεία ανά ευρετήριο και χρησιμοποιήστε αρνητικούς δείκτες για να μετρήσετε από το τέλος.
  • Τεμαχισμός: Τεμαχισμός μιας υπολίστας με list[start:end], η οποία είναι αποκλειστική για το ανώτερο όριο.
  • Μέθοδοι: append(), pop(), remove(), reverse(), sort() και άλλα, τροποποίηση λιστών.
  • Κατανοήσεις: Οι κατανοήσεις λιστών δημιουργούν νέες λίστες σε μία σύντομη και γρήγορη γραμμή.
  • 🤖 Βοήθεια με την Τεχνητή Νοημοσύνη: Τα εργαλεία τεχνητής νοημοσύνης, όπως το Copilot, δημιουργούν άμεσα λίστες και κώδικα κατανόησης.

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.

Τουαλέταping μέσω λιστών

Τουαλέταping μέσω λιστών μπορεί να γίνει με τον ίδιο ακριβώς τρόπο όπως οποιαδήποτε άλλη τουαλέταping λειτουργία στο 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έκδοση ενός πίνακα.

Χρησιμοποιήστε τη συνάρτηση list[start:end] για να λάβετε μια υπολίστα. Η τεμαχισμός δεν περιλαμβάνει το ανώτερο όριο, επομένως ο δείκτης τέλους δεν περιλαμβάνεται. Η παράλειψη του δείκτη έναρξης ή τέλους χρησιμοποιεί τα όρια της λίστας.

Χρησιμοποιήστε την append() για να προσθέσετε ένα στοιχείο στο τέλος και την extend() για να προσθέσετε πολλά. Αφαιρέστε στοιχεία με remove() κατά τιμή ή με pop() και del κατά ευρετήριο.

Καλέστε τη συνάρτηση list.sort() για ταξινόμηση κατά θέση σε αύξουσα σειρά. Δώστε τη συνάρτηση reverse=True για φθίνουσα σειρά ή key=len για ταξινόμηση συμβολοσειρών κατά μήκος.

Η κατανόηση λίστας δημιουργεί μια νέα λίστα σε μία μόνο γραμμή, όπως [x**2 για x στο εύρος(1, 10)]. Αντικαθιστά πολλούς βρόχους for με μικρότερο, ταχύτερο και πιο ευανάγνωστο κώδικα.

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

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

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

Συνοψίστε αυτήν την ανάρτηση με: