Python Λίστα ευρετηρίου() με Παράδειγμα

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

Python Η list index() επιστρέφει την πρώτη θέση ενός δεδομένου στοιχείου, ενώ η looping Οι δομές, οι κατανοήσεις λιστών, η enumerate(), η filter(), η βιβλιοθήκη NumPy και η more_itertools.locate() επεκτείνουν αυτήν την τεχνική για να συλλέξουν κάθε αντίστοιχο ευρετήριο σε μια λίστα που περιέχει διπλότυπες τιμές.

  • 🔘 μέθοδος index(): Η ενσωματωμένη συνάρτηση index() επιστρέφει την πρώτη χαμηλότερη θέση ενός στοιχείου και δέχεται προαιρετικά όρια έναρξης και λήξης.
  • ☑️ Σφάλμα τιμής: Η index() προκαλεί ένα ValueError όταν το στοιχείο απουσιάζει, επομένως τυλίξτε την κλήση σε try-except για ασφαλείς αναζητήσεις.
  • Όλες οι εμφανίσεις: Μια κατανόηση βρόχου for, βρόχου while ή λίστας συλλέγει κάθε δείκτη όταν μια τιμή επαναλαμβάνεται μέσα στη λίστα.
  • 🧪 Ενσωματωμένοι βοηθοί: Οι enumerate() και filter() αντιστοιχίζουν ένα ευρετήριο με κάθε στοιχείο, δίνοντας συνοπτικούς τρόπους μιας γραμμής για τη συλλογή αντίστοιχων θέσεων.
  • NumPy και more_itertools: Οι συναρτήσεις np.where() και more_itertools.locate() επιστρέφουν αποτελεσματικά όλα τα αντίστοιχα ευρετήρια για μεγάλα σύνολα δεδομένων.
  • 🤖 Ροές εργασίας τεχνητής νοημοσύνης: Οι αγωγοί μηχανικής μάθησης εντοπίζουν τις θέσεις των ετικετών και τα αντίστοιχα δείγματα ανά ευρετήριο προτού οι πίνακες τροφοδοτήσουν ένα μοντέλο.

Python Ευρετήριο λίστας()

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

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

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

Python Ευρετήριο λίστας()

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

Εκτός από την ενσωματωμένη μέθοδο list index(), μπορείτε επίσης να χρησιμοποιήσετε άλλους τρόπους για να λάβετε το ευρετήριο όπως looping μέσω της λίστας, χρησιμοποιώντας κατανοήσεις λίστας, enumerate(), μεθόδους φιλτραρίσματος.

Η μέθοδος list index() επιστρέφει τον πρώτο χαμηλότερο δείκτη του δεδομένου στοιχείου.

Σύνταξη

list.index(element, start, end)

Παράμετροι

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

επιστροφή Αξία

Η μέθοδος list index() επιστρέφει το ευρετήριο του δεδομένου στοιχείου. Εάν το στοιχείο δεν υπάρχει στη λίστα, η μέθοδος index() θα εμφανίσει ένα σφάλμα, για παράδειγμα, ValueError: Το 'στοιχείο' δεν βρίσκεται στη λίστα.

Παράδειγμα: Για να βρείτε το ευρετήριο του δεδομένου στοιχείου.

Στη λίστα my_list = ['A', 'B', 'C', 'D', 'E', 'F'], θα θέλαμε να γνωρίζουμε τον δείκτη για τα στοιχεία C και F.

Το παρακάτω παράδειγμα δείχνει πώς να αποκτήσετε το ευρετήριο.

my_list = ['A', 'B', 'C', 'D', 'E', 'F']
print("The index of element C is ", my_list.index('C'))
print("The index of element F is ", my_list.index('F'))

Παραγωγή:

The index of element C is  2
The index of element F is  5

Παράδειγμα: Χρησιμοποιώντας την αρχή και το τέλος στο index()

Σε αυτό το παράδειγμα, θα προσπαθήσουμε να περιορίσουμε την αναζήτηση του ευρετηρίου σε μια λίστα χρησιμοποιώντας το αρχικό και το τελικό ευρετήριο.

my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print("The index of element C is ", my_list.index('C', 1, 5))
print("The index of element F is ", my_list.index('F', 3, 7))
#using just the startindex
print("The index of element D is ", my_list.index('D', 1))

Παραγωγή:

The index of element C is  2
The index of element F is  5
The index of element D is  3

Παράδειγμα: Για να ελέγξετε τη μέθοδο index() με ένα στοιχείο που δεν υπάρχει.

Όταν προσπαθείτε να αναζητήσετε στη λίστα ένα στοιχείο που δεν υπάρχει, θα λάβετε ένα σφάλμα όπως φαίνεται παρακάτω:

my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print("The index of element C is ", my_list.index('Z'))

Παραγωγή:

Traceback (most recent call last):
File "display.py", line 3, in <module>
print("The index of element C is ", my_list.index('Z'))
ValueError: 'Z' is not in list

Χρησιμοποιώντας το for-loop για να λάβετε το ευρετήριο ενός στοιχείου σε μια λίστα

Με τη μέθοδο list.index(), είδαμε ότι δίνει το ευρετήριο του στοιχείου που μεταβιβάζεται ως όρισμα.

Τώρα θεωρήστε τη λίστα ως: my_list = ['Guru', 'Σία', 'Τία', 'Guru', 'Ντακς', 'Ρίγια', 'GuruΤο όνομαGuruΤο ' υπάρχει 3 φορές στο ευρετήριο και θέλω όλα τα ευρετήρια με το όνομα 'Guru».

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

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
all_indexes = [] 
for i in range(0, len(my_list)) : 
    if my_list[i] == 'Guru' : 
        all_indexes.append(i)
print("Originallist ", my_list)
print("Indexes for element Guru : ", all_indexes)

Παραγωγή:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Χρησιμοποιώντας while-loop και list.index()

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

Στη λίστα: my_list = ['Guru', 'Σία', 'Τία', 'Guru', 'Ντακς', 'Ρίγια', 'Guru'], χρειαζόμαστε όλους τους δείκτες του στοιχείου 'Guru».

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

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
result = []
elementindex = -1
while True:
    try:
        elementindex = my_list.index('Guru', elementindex+1)
        result.append(elementindex)
    except  ValueError:
        break
print("OriginalList is ", my_list)
print("The index for element Guru is ", result)

Παραγωγή:

OriginalList is  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
The index for element Guru is  [0, 3, 6]

Χρησιμοποιώντας την κατανόηση λίστας για να λάβετε το ευρετήριο του στοιχείου σε μια λίστα

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

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

Βοηθούν στη μείωση των μεγαλύτερων βρόχων και διευκολύνουν την ανάγνωση και τη συντήρηση του κώδικά σας.

Το ακόλουθο παράδειγμα δείχνει πώς να το κάνετε:

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
all_indexes = [a for a in range(len(my_list)) if my_list[a] == 'Guru']
print("Indexes for element Guru : ", all_indexes)

Παραγωγή:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Χρησιμοποιώντας το Enumerate για να λάβετε το ευρετήριο ενός στοιχείου σε μια λίστα

Η συνάρτηση Enumerate() είναι μια ενσωματωμένη συνάρτηση διαθέσιμη με PythonΜπορείτε να χρησιμοποιήσετε την enumerate για να λάβετε όλα τα ευρετήρια του στοιχείου σε μια λίστα. Δέχεται δεδομένα εισόδου ως επαναλήψιμο αντικείμενο (δηλαδή, ένα αντικείμενο που μπορεί να επαναληφθεί) και η έξοδος είναι ένα αντικείμενο με έναν μετρητή για κάθε στοιχείο.

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

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
print("Indexes for element Guru : ", [i for i, e in enumerate(my_list) if e == 'Guru'])

Παραγωγή:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Χρήση φίλτρου για λήψη του ευρετηρίου ενός στοιχείου σε μια λίστα

Η μέθοδος filter() φιλτράρει τη δεδομένη λίστα με βάση τη συνάρτηση που δίνεται. Κάθε στοιχείο της λίστας θα μεταβιβαστεί στη συνάρτηση και τα απαιτούμενα στοιχεία θα φιλτράρονται με βάση τη συνθήκη που δίνεται στη συνάρτηση.

Ας χρησιμοποιήσουμε τη μέθοδο filter() για να λάβουμε τα ευρετήρια για το δεδομένο στοιχείο στη λίστα.

Το παρακάτω παράδειγμα δείχνει πώς να χρησιμοποιήσετε ένα φίλτρο σε μια λίστα.

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
all_indexes = list(filter(lambda i: my_list[i] == 'Guru', range(len(my_list)))) 
print("Indexes for element Guru : ", all_indexes)

Παραγωγή:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Χρησιμοποιώντας το NumPy για να λάβετε το ευρετήριο ενός στοιχείου σε μια λίστα

Η βιβλιοθήκη NumPy χρησιμοποιείται ειδικά για πίνακες. Εδώ λοιπόν θα χρησιμοποιήσουμε το NumPy για να λάβουμε τον δείκτη του στοιχείου που χρειαζόμαστε από τη δεδομένη λίστα.

Για να χρησιμοποιήσουμε το NumPy, πρέπει να το εγκαταστήσουμε και να το εισαγάγουμε.

Ακολουθούν τα βήματα για το ίδιο:

Βήμα 1) Εγκαταστήστε το NumPy

pip install numpy

Βήμα 2) Εισαγάγετε τη μονάδα NumPy.

import numpy as np

Βήμα 3) Χρησιμοποιήστε το np.array για να μετατρέψετε μια λίστα σε πίνακα.

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
np_array = np.array(my_list)

Βήμα 4) Λάβετε τον δείκτη του στοιχείου που θέλετε, χρησιμοποιώντας την συνάρτηση np.where().

item_index = np.where(np_array == 'Guru')[0]

Ο τελικός κώδικας εργασίας με έξοδο είναι ο εξής:

import numpy as np
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
np_array = np.array(my_list)
item_index = np.where(np_array == 'Guru')[0]
print("Originallist ", my_list)
print("Indexes for element Guru :", item_index)

Παραγωγή:

Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru : [0 3 6]

Χρήση της συνάρτησης more_itertools.locate() για λήψη του δείκτη ενός στοιχείου σε μια λίστα

Η συνάρτηση more_itertools.locate() βοηθά στην εύρεση των ευρετηρίων του στοιχείου στη λίστα. Αυτή η ενότητα θα λειτουργήσει με Python έκδοση 3.5+. Το πακέτο more_itertools πρέπει να εγκατασταθεί πρώτα για να γίνει χρήση του.

Τα παρακάτω είναι τα βήματα για την εγκατάσταση και τη χρήση του more_itertools:

Βήμα 1) Εγκαταστήστε το more_itertools χρησιμοποιώντας το pip (Python διαχειριστής πακέτων). Η εντολή είναι

pip install more_itertools

Βήμα 2) Μόλις ολοκληρωθεί η εγκατάσταση, εισαγάγετε το εντοπίσετε ενότητα όπως φαίνεται παρακάτω.

from more_itertools import locate

Τώρα μπορείτε να χρησιμοποιήσετε τη μονάδα εντοπισμού σε μια λίστα όπως φαίνεται παρακάτω στο παράδειγμα:

from more_itertools import locate
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist : ", my_list)
print("Indexes for element Guru :", list(locate(my_list, lambda x: x == 'Guru')))

Παραγωγή:

Originallist :  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru : [0, 3, 6]

Συχνές Ερωτήσεις

Η μέθοδος index() δημιουργεί ένα ValueError όταν λείπει το στοιχείο. Τυλίξτε την κλήση σε ένα μπλοκ try-except ή σε ένα first test membership με τον τελεστή in, έτσι ώστε μια τιμή που λείπει να μην προκαλέσει σφάλμα στο πρόγραμμά σας.

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

Ναι. Η index() συγκρίνει τα στοιχεία ακριβώς, άρα 'GuruΤα ' και 'guru' αντιμετωπίζονται ως διαφορετικές τιμές. Η αναζήτηση για λάθος πεζά-κεφαλαία προκαλεί ValueError. Κανονικοποιήστε τις συμβολοσειρές με lower() πριν από την αναζήτηση, εάν χρειάζεστε αντιστοίχιση χωρίς διάκριση πεζών-κεφαλαίων.

Χρησιμοποιήστε τον τελεστή in, για παράδειγμα αν 'Guru' στη λίστα_μου. Επιστρέφει την τιμή True ή False χωρίς να εμφανίζει σφάλμα, επομένως μπορείτε να καλέσετε με ασφάλεια το index() μόνο όταν το στοιχείο υπάρχει στην πραγματικότητα στη λίστα.

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

Python Οι λίστες παρέχουν index() αλλά δεν έχουν μέθοδο find(). Η index() δημιουργεί ένα ValueError όταν το στοιχείο απουσιάζει, ενώ η συμβολοσειρά find() επιστρέφει -1. Για λίστες, εντοπίστε το σφάλμα ή ελέγξτε την ιδιότητα μέλους με τον τελεστή in.

Ο εντοπισμός του δείκτη ενός στοιχείου βοηθά στην αντιστοίχιση κατηγορικών ετικετών σε αριθμητικές θέσεις, στην εύρεση του σημείου εμφάνισης μιας προβλεπόμενης κλάσης ή στην ευθυγράμμιση των στηλών χαρακτηριστικών πριν από την εκπαίδευση. Το NumPy επεκτείνει αυτό το σύστημα με την np.where() για γρήγορες αναζητήσεις σε δείκτες σε μεγάλους πίνακες και σύνολα δεδομένων.

Ναι. Το GitHub Copilot και οι βοηθοί τεχνητής νοημοσύνης δημιουργούν αναζητήσεις index(), enumerate() και αναζητήσεις που βασίζονται στην κατανόηση από ένα απλό σχόλιο, προτείνουν ασφαλή χειρισμό σφαλμάτων για τιμές που λείπουν και επαναπροσδιορίζουν τους βρόχους, αν και θα πρέπει να δοκιμάσετε περιπτώσεις edge και να επιβεβαιώσετε τις θέσεις που επιστρέφονται.

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