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

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

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

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

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

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

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

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

Σύνταξη

list.index(element, start, end)

παράμετροι

παράμετροι Descriptιόν
στοιχείο Το στοιχείο που θέλετε να λάβετε το ευρετήριο.
Εκκίνηση Αυτή η παράμετρος είναι προαιρετική. Μπορείτε να ορίσετε την αρχή: ευρετήριο για να αναζητήσετε το στοιχείο. Εάν δεν δοθεί, η προεπιλεγμένη τιμή είναι 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', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] . Το όνομα 'Guru' υπάρχει 3 φορές στο ευρετήριο και θέλω όλα τα ευρετήρια με το όνομα 'Guru'.

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

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', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], χρειαζόμαστε όλους τους δείκτες του στοιχείου 'Guru'.

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

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]

Σύνοψη

  • Η μέθοδος list index() σάς βοηθά να βρείτε το ευρετήριο του δεδομένου στοιχείου. Αυτός είναι ο πιο εύκολος και απλός τρόπος για να λάβετε το δείκτη.
  • Η μέθοδος list index() επιστρέφει το ευρετήριο του δεδομένου στοιχείου.
  • Εάν το στοιχείο δεν υπάρχει στη λίστα, η μέθοδος index() θα εμφανίσει ένα σφάλμα, για παράδειγμα, ValueError: Το 'στοιχείο' δεν είναι στη λίστα.
  • Εκτός από τη μέθοδο της ενσωματωμένης λίστας, μπορείτε επίσης να χρησιμοποιήσετε άλλους τρόπους για να λάβετε το ευρετήριο, όπως επαναφορά στη λίστα, χρήση κατανοήσεων λίστας, χρήση enumerate(), χρησιμοποιώντας φίλτρο κ.λπ.
  • Χρησιμοποιώντας for-loop και while-loop για να λάβετε τους πολλαπλούς δείκτες ενός δεδομένου στοιχείου.
  • Για να λάβετε όλα τα ευρετήρια, ένας γρήγορος και απλός τρόπος είναι να χρησιμοποιήσετε την κατανόηση της λίστας στη λίστα.
  • Κατανοήσεις λίστας είναι Python συναρτήσεις που χρησιμοποιούνται για τη δημιουργία νέων ακολουθιών.
  • Βοηθούν στη μείωση των μεγαλύτερων βρόχων και διευκολύνουν την ανάγνωση και τη συντήρηση του κώδικά σας.
  • Μπορείτε να χρησιμοποιήσετε το enumerate για να λάβετε όλα τα ευρετήρια του στοιχείου σε μια λίστα.
  • Η συνάρτηση Enumerate() είναι μια ενσωματωμένη συνάρτηση διαθέσιμη με την python. Λαμβάνει την είσοδο ως επαναλαμβανόμενο αντικείμενο (δηλαδή, ένα αντικείμενο που μπορεί να επαναληφθεί) και η έξοδος είναι ένα αντικείμενο με έναν μετρητή για κάθε στοιχείο.
  • Η μέθοδος filter() φιλτράρει τη δεδομένη λίστα με βάση τη συνάρτηση που δίνεται.
  • Η βιβλιοθήκη Numpy χρησιμοποιείται ειδικά για πίνακες. Μπορείτε να χρησιμοποιήσετε το NumPy για να λάβετε το ευρετήριο του στοιχείου που δίνεται στη λίστα.
  • Η more_itertools.locate() είναι μια ακόμη βιβλιοθήκη python που βοηθά στην εύρεση των ευρετηρίων της λίστας που δίνεται.