Python Μέθοδος String find() με παραδείγματα

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

Python Η string find() είναι μια ενσωματωμένη μέθοδος που επιστρέφει τον δείκτη της πρώτης εμφάνισης μιας υποσυμβολοσειράς μέσα σε μια συμβολοσειρά. Επιστρέφει -1 όταν η υποσυμβολοσειρά δεν υπάρχει, αποφεύγοντας τις εξαιρέσεις.

  • 🔍 Σύνταξη: Η find() δέχεται μια δευτερεύουσα συμβολοσειρά συν προαιρετικά ευρετήρια αρχής και τέλους για να περιορίσει το εύρος αναζήτησης.
  • 🎯 Πρώτος αγώνας: Η find() επιστρέφει τον χαμηλότερο δείκτη της πρώτης εμφάνισης, σαρώνοντας από αριστερά προς τα δεξιά.
  • Δεν βρέθηκε: Η find() επιστρέφει -1 αντί να εμφανίζει σφάλμα όταν η υποσυμβολοσειρά απουσιάζει.
  • 🔁 rfind(): Η μέθοδος rfind() επιστρέφει τον υψηλότερο δείκτη, αναζητώντας από τη δεξιά πλευρά.
  • ⚠️ δείκτης(): Η μέθοδος index() συμπεριφέρεται όπως η find() αλλά προκαλεί ValueError όταν λείπει η υποσυμβολοσειρά.
  • 🤖 Βοήθεια AI: Οι βοηθοί κωδικοποίησης τεχνητής νοημοσύνης δημιουργούν λογική find() και αναζήτηση υποσυμβολοσειράς ισχύος σε αγωγούς κειμένου NLP.

Python Εύρεση συμβολοσειράς ()

Τι είναι Python String find();

Python Εύρεση συμβολοσειράς () είναι μια λειτουργία διαθέσιμη στο Python βιβλιοθήκη για να βρει τον δείκτη της πρώτης εμφάνισης μιας υποσυμβολοσειράς μέσα σε μια δεδομένη συμβολοσειρά. Η συνάρτηση find() επιστρέφει -1 αντί να δημιουργήσει μια εξαίρεση όταν η καθορισμένη υποσυμβολοσειρά δεν υπάρχει στη δεδομένη συμβολοσειρά. Είναι ένα από τα Pythonτο πιο χρησιμοποιούμενο μεθόδους συμβολοσειράς για τον εντοπισμό κειμένου.

Σύνταξη του Python string find()

Η βασική σύνταξη του Python Η λειτουργία find() είναι η εξής:

string.find(substring,start,end)

Παράμετροι για τη μέθοδο find().

Εδώ είναι οι τρεις παράμετροι της συνάρτησης find() στο Python:

  • υπόστρωμα: Η δευτερεύουσα συμβολοσειρά που θέλετε να αναζητήσετε στη δεδομένη συμβολοσειρά.
  • Εκκίνηση: (προαιρετικό) Η τιμή έναρξης από την οποία θα ξεκινήσει η αναζήτηση για τη δευτερεύουσα συμβολοσειρά. Από προεπιλογή, είναι 0.
  • τέλος: (προαιρετικό) Η τελική τιμή όπου θα τερματιστεί η αναζήτηση για τη δευτερεύουσα συμβολοσειρά. Από προεπιλογή, η τιμή είναι το μήκος της συμβολοσειράς.

Παράδειγμα μεθόδου find() με προεπιλεγμένες τιμές

Οι παράμετροι που διαβιβάστηκαν στο Python Η μέθοδος find() είναι η δευτερεύουσα συμβολοσειρά, δηλαδή η συμβολοσειρά που θέλετε να αναζητήσετε, καθώς και η αρχική και η τελική τιμή. Η αρχική τιμή είναι 0 από προεπιλογή και η τελική τιμή είναι το μήκος της συμβολοσειράς.

Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε τη μέθοδο find() στο Python με προεπιλεγμένες τιμές.

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

Παράδειγμα:

mystring = "Meet Guru99 Tutorials Site.καλυτερα site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))

Παραγωγή:

The position of Tutorials is at: 12

Παράδειγμα find() χρησιμοποιώντας όρισμα έναρξης

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

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

Παράδειγμα:

mystring = "Meet Guru99 Tutorials Site.καλυτερα site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))

Παραγωγή:

The position of Tutorials is at 48

Παράδειγμα find() που χρησιμοποιεί ορίσματα έναρξης και τέλους

Χρησιμοποιώντας τις παραμέτρους έναρξης και λήξης, μπορούμε να περιορίσουμε την αναζήτηση αντί να αναζητήσουμε ολόκληρη τη συμβολοσειρά.

Παράδειγμα:

mystring = "Meet Guru99 Tutorials Site.καλυτερα site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))

Παραγωγή:

The position of Tutorials is at 12

Παράδειγμα μεθόδου find() για την εύρεση της θέσης μιας δεδομένης υποσυμβολοσειράς σε μια συμβολοσειρά

Γνωρίζουμε ότι η find() μας βοηθά να βρούμε τον δείκτη της πρώτης εμφάνισης μιας υποσυμβολοσειράς. Επιστρέφει -1 εάν η υποσυμβολοσειρά δεν υπάρχει στη δεδομένη συμβολοσειρά. Το παρακάτω παράδειγμα δείχνει τον δείκτη όταν η συμβολοσειρά υπάρχει και -1 όταν η υποσυμβολοσειρά που αναζητούμε δεν βρίσκεται.

Παράδειγμα:

mystring = "Meet Guru99 Tutorials Site.καλυτερα site for Python Tutorials!"
print("The position of καλυτερα site is at:", mystring.find("καλυτερα site", 5, 40))
print("The position of Guru99 is at:", mystring.find("Guru99", 20))

Παραγωγή:

The position of καλυτερα site is at: 27
The position of Guru99 is at: -1

Python συμβολοσειρά rfind()

The Python Η συνάρτηση rfind() είναι παρόμοια με τη συνάρτηση find(), με τη μόνη διαφορά ότι η rfind() δίνει τον υψηλότερο δείκτη για τη δεδομένη υποσυμβολοσειρά, ενώ η find() δίνει τον χαμηλότερο, δηλαδή τον πρώτο δείκτη. Τόσο η rfind() όσο και η find() επιστρέφουν -1 εάν η υποσυμβολοσειρά δεν υπάρχει.

Στο παρακάτω παράδειγμα, έχουμε μια συμβολοσειρά "Meet Guru99 Ιστότοπος σεμιναρίων. καλυτερα site για Python Οδηγίες!» και θα προσπαθήσει να βρει τη θέση της υποσυμβολοσειράς Tutorials χρησιμοποιώντας find() και rfind(). Η υποσυμβολοσειρά Tutorials εμφανίζεται δύο φορές στη συμβολοσειρά.

Ακολουθεί ένα παράδειγμα όπου χρησιμοποιούνται τόσο η find() όσο και η rfind().

mystring = "Meet Guru99 Tutorials Site.καλυτερα site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))

Παραγωγή:

The position of Tutorials using find() :  12
The position of Tutorials using rfind() :  48

Η έξοδος δείχνει ότι η find() δίνει τον δείκτη της πρώτης υποσυμβολοσειράς Tutorials που βρίσκει, ενώ η rfind() δίνει τον τελευταίο δείκτη της υποσυμβολοσειράς Tutorials.

Python ευρετήριο συμβολοσειράς()

The Python Η συνάρτηση string index() είναι μια συνάρτηση που σας δίνει τη θέση της δεδομένης υποσυμβολοσειράς, όπως ακριβώς και η find(). Η μόνη διαφορά μεταξύ των δύο είναι ότι η index() δημιουργεί μια εξαίρεση εάν η υποσυμβολοσειρά δεν υπάρχει στη συμβολοσειρά, ενώ η find() επιστρέφει -1.

Ακολουθεί ένα παράδειγμα εργασίας που δείχνει τη συμπεριφορά των index() και find().

mystring = "Meet Guru99 Tutorials Site.καλυτερα site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using index() : ", mystring.index("Tutorials"))

Παραγωγή:

The position of Tutorials using find() :  12
The position of Tutorials using index() :  12

Λαμβάνουμε την ίδια θέση τόσο για τη find() όσο και για τη index(). Ας δούμε ένα παράδειγμα όταν η δεδομένη υποσυμβολοσειρά δεν υπάρχει στη συμβολοσειρά.

mystring = "Meet Guru99 Tutorials Site.καλυτερα site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("test"))
print("The position of Tutorials using index() : ", mystring.index("test"))

Παραγωγή:

The position of Tutorials using find() :  -1
Traceback (most recent call last):
  File "task1.py", line 3, in <module>
    print("The position of Tutorials using index() : ", mystring.index("test"))
ValueError: substring not found

Στο παραπάνω παράδειγμα, προσπαθούμε να βρούμε τη θέση της υποσυμβολοσειράς "test". Η υποσυμβολοσειρά δεν υπάρχει στη δεδομένη συμβολοσειρά, επομένως χρησιμοποιώντας την find() λαμβάνουμε τη θέση ως -1, αλλά για την index() εμφανίζεται ένα σφάλμα, όπως φαίνεται παραπάνω.

Για να βρείτε τη συνολική εμφάνιση μιας υποσυμβολοσειράς

Για να βρούμε τον συνολικό αριθμό φορών που έχει εμφανιστεί μια υποσυμβολοσειρά σε μια δεδομένη συμβολοσειρά, θα χρησιμοποιήσουμε τη συνάρτηση find() στο PythonΘα επαναλάβουμε τη συμβολοσειρά χρησιμοποιώντας έναν βρόχο for από το 0 μέχρι το τέλος της συμβολοσειράς, χρησιμοποιώντας την παράμετρο startIndex για την find().

Οι μεταβλητές startIndex και count θα αρχικοποιηθούν σε 0. Μέσα στον βρόχο for, θα ελέγξουμε αν η υποσυμβολοσειρά υπάρχει μέσα στη δεδομένη συμβολοσειρά χρησιμοποιώντας τη συνάρτηση find() με startIndex ως 0.

Η τιμή που επιστρέφεται από την find(), αν δεν είναι -1, θα ενημερώσει το startIndex στον δείκτη όπου βρίσκεται η συμβολοσειρά και επίσης θα αυξήσει την τιμή count.

Εδώ είναι το παράδειγμα εργασίας:

my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for i in range(len(my_string)):
    k = my_string.find('test', startIndex)
    if(k != -1):
        startIndex = k+1
        count += 1
        k = 0
print("The total count of substring test is: ", count )

Παραγωγή:

The total count of substring test is:  6

" Μάθε περισσότερα για Python Διαίρεση συμβολοσειράς()

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

Ναι. Η find() ταιριάζει ακριβώς με την υποσυμβολοσειρά, επομένως το “Hello”.find(“h”) επιστρέφει -1 ενώ το “Hello”.find(“H”) επιστρέφει 0. Μετατρέψτε πρώτα τη συμβολοσειρά με lower() ή upper() όταν χρειάζεστε αναζήτηση χωρίς διάκριση πεζών-κεφαλαίων.

Ο τελεστής in επιστρέφει μόνο True ή False για να δείξει εάν υπάρχει μια υποσυμβολοσειρά. Η find() προχωρά περαιτέρω και επιστρέφει τον ακριβή δείκτη της πρώτης αντιστοίχισης ή -1 όταν η υποσυμβολοσειρά απουσιάζει.

Ναι. Η find() δέχεται αρνητικούς δείκτες αρχής και τέλους, οι οποίοι μετράνε από το τέλος της συμβολοσειράς. Για παράδειγμα, "GuruΗ συνάρτηση 99”.find(“9”, -2) αναζητά μόνο τους δύο τελευταίους χαρακτήρες και επιστρέφει τη θέση τους.

Η μέθοδος str.find() εντοπίζει μία αντιστοιχία κάθε φορά. Για όλες τις αντιστοιχίες σε μία μόνο κλήση, χρησιμοποιήστε την ενότητα re: η re.findall() επιστρέφει κάθε αντίστοιχη υποσυμβολοσειρά και η re.finditer() αποδίδει αντικείμενα αντιστοίχισης με κάθε αρχική θέση.

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

Ναι. Για μια απλή αναζήτηση υποσυμβολοσειράς, η find() υλοποιείται σε C και εκτελείται πιο γρήγορα από τη μεταγλώττιση μιας κανονικής έκφρασης. Χρησιμοποιήστε την ενότητα re μόνο όταν χρειάζεστε μοτίβα, wildcards ή πολλαπλές αντιστοιχίσεις.

Στη μηχανική μάθηση και το NLP, η find() εντοπίζει λέξεις-κλειδιά, ετικέτες ή οριοθέτες κατά τον καθαρισμό και τη μετατροπή κειμένου σε token. Η ανίχνευση της παρουσίας ή της θέσης μιας υποσυμβολοσειράς βοηθά στην κατασκευή χαρακτηριστικών και στην ανάλυση των εισόδων του μοντέλου.

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

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