Python Λίστα ευρετηρίου() με Παράδειγμα
⚡ Έξυπνη Σύνοψη
Python Η list index() επιστρέφει την πρώτη θέση ενός δεδομένου στοιχείου, ενώ η looping Οι δομές, οι κατανοήσεις λιστών, η enumerate(), η filter(), η βιβλιοθήκη NumPy και η more_itertools.locate() επεκτείνουν αυτήν την τεχνική για να συλλέξουν κάθε αντίστοιχο ευρετήριο σε μια λίστα που περιέχει διπλότυπες τιμές.
Μια λίστα είναι ένα κοντέινερ που αποθηκεύει στοιχεία διαφορετικών τύπων δεδομένων (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]

