Κατανόηση των Substrings στην Python με Παραδείγματα

Αυτό το άρθρο στοχεύει να φέρει τον εκπαιδευόμενο σε μια καλύτερη κατανόηση των υποσυμβολοσειρών στην Python.

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

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

Θα συζητήσουμε τα εξής:

  • Δημιουργία υποσυμβολοσειράς.
  • Τρόποι κοπής μιας υποσυμβολοσειράς.
  • Αριθμός εμφανίσεων μιας υποσυμβολοσειράς
  • Εύρεση της παρουσίας μιας υποσυμβολοσειράς σε μια συμβολοσειρά.

Ας ξεκινήσουμε!

Δημιουργία Υποσυμβολοσειράς

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

Η σύνταξη μοιάζει με αυτό:

string[begin-index: end-index: step]

Σημειώστε ότι η τιμή του δείκτη σε οποιαδήποτε συμβολοσειρά ξεκινά από το μηδέν.

Η παράμετρος start-index υποδεικνύει τον αρχικό δείκτη της υποσυμβολοσειράς. Επομένως, εάν παραλείψετε αυτό το στοιχείο κατά τον τεμαχισμό, η Python αυτόματα υποθέτει ότι η τιμή του δείκτη είναι μηδέν.

Το End-index είναι το τελευταίο ευρετήριο της υποσυμβολοσειράς. Όταν δεν το αναφέρετε, ο τεμαχισμός υποθέτει ότι η τιμή του ισούται με το μήκος της συμβολοσειράς.

Βήμα: Υποδεικνύει τον επόμενο χαρακτήρα που θα ληφθεί υπόψη μετά τον τρέχοντα χαρακτήρα. Η τιμή αυτής της παραμέτρου είναι συνήθως μία. Όταν η παράμετρος βήμα παραλείπεται κατά τον τεμαχισμό, η τιμή της εξακολουθεί να θεωρείται ότι είναι ένα.

  30 Χρόνια «Ναρκοκαθαριστής» (Σουντόκου με Εκρήξεις)

Τρόποι κοπής μιας χορδής

Υπάρχουν διάφοροι τρόποι με τους οποίους μπορούμε να λάβουμε μια υποσυμβολοσειρά από μια συμβολοσειρά. Αυτά περιλαμβάνουν:

#1. Τεμαχισμός με χρήση ευρετηρίου αρχής και ευρετηρίου τέλους.

String = string[begin-index : end-index]

Σε μια περίπτωση που θέλετε να αποκτήσετε το όνομα ενός ατόμου από το πλήρες όνομά του, θα το εφαρμόσετε ως εξής:

string = 'Michael Doe'

print(string[0:7])

Η έξοδος θα είναι:

Michael

#2. Τεμαχισμός με χρήση ευρετηρίου αρχής χωρίς ευρετήριο τέλους.

String= string[begin-index:]

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

Παράδειγμα:

string = 'This is to demonstrate slicing of a string using the begin-index without the end-index'

print(string[7:])

Παραγωγή:

to demonstrate slicing of a string using the begin-index without the end-index

#3. Τεμαχισμός χρησιμοποιώντας το end-index χωρίς το start-index.

String = string[:end-index]

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

Παράδειγμα:

string = 'This is to demonstrate slicing of a string using the end-index without the begin-index'

print(string[:9])

Παραγωγή:

This is t

#4. Κόβοντας ολόκληρο το κορδόνι.

String = string[ : ]

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

Παράδειγμα

string = 'This is to demonstrate slicing of the entire string'

print(string[:])

Παραγωγή:

This is to demonstrate slicing of the entire string

#5. Κοπή ενός χαρακτήρα από μια συμβολοσειρά.

String = string[index]

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

  Βρείτε εύκολες συνταγές για την ημέρα των ευχαριστιών με αυτές τις εφαρμογές και τους ιστότοπους

Παράδειγμα:

string = 'This is to demonstrate slicing of a single character from a string'

print(string[8])

Το ‘t’ στο ‘to’ εκτυπώνεται αφού η τιμή ευρετηρίου του είναι 8.

#6. Τεμαχισμός με χρήση του ευρετηρίου αρχής, του ευρετηρίου τέλους και του βήματος.

Παράδειγμα

string = 'This is to demonstrate slicing of the string using the begin-index, step, and end-index'

print(string[11:24:1])

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

demonstrate s

Χρησιμοποιώντας το ίδιο παράδειγμα, ας ορίσουμε την τιμή βήματος σε 2.

string = 'This is to demonstrate slicing of the string using the begin-index, step, and end-index'

print(string[11:24:2])

Ο τεμαχισμός των χαρακτήρων θα γίνει σε βήματα των 2 όπως αυτό.

dmntaes

Το Slicing εξάγει τον δεύτερο χαρακτήρα μετά τον τρέχοντα. Επομένως, οι φέτες Python δείχνουν το s στον Dmntaes.

#7. Αντιστροφή συμβολοσειράς χρησιμοποιώντας αρνητικό βήμα.

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

string = 'This is to demonstrate reversing string using the negative step'

print(string[::-1])

Παραγωγή:

pets evitagen eht gnisu gnirts gnisrever etartsnomed ot si sihT

Το αρνητικό βήμα λειτουργεί ως εξής:

R
μι
V
μι
R
μικρό
μι
0
1
2
3
4
5
6
-6
-5
-4
-3
-2
-1

Η τιμή ευρετηρίου έναρξης της αντίστροφης συμβολοσειράς παραπάνω ξεκινά από το 0 από προεπιλογή και τελειώνει σε 6. Το αρνητικό βήμα αντιστρέφει την τιμή ευρετηρίου του τελευταίου χαρακτήρα και την εφαρμόζει στον πρώτο χαρακτήρα και αναιρεί αυτήν την τιμή.

Περισσότερα παραδείγματα για τον τεμαχισμό

Λήψη των πρώτων τεσσάρων χαρακτήρων υποσυμβολοσειράς σε μια συμβολοσειρά.

string = 'characters'

print(string[0:4])

Θα βγει:

char

Εύρεση της παρουσίας μιας υποσυμβολοσειράς σε μια συμβολοσειρά

Η Python χρησιμοποιεί είτε τη συνάρτηση find() είτε τον τελεστή ‘in’ για να ελέγξει την ύπαρξη μιας υποσυμβολοσειράς σε μια συμβολοσειρά.

  Μπορείτε να ακυρώσετε το FUBO και να λάβετε επιστροφή χρημάτων;

Χρησιμοποιώντας το παράδειγμα χειριστή «in».

string = 'this is to demonstrate that a particular substring is found in a string '
if 'find' in string: 
    print('The substring is found') 
else: 
    print('Could not find the substring defined')

Παραγωγή:

Could not find the substring defined

Το παραπάνω παράδειγμα ελέγχει εάν η δευτερεύουσα συμβολοσειρά ‘εύρεση’ υπάρχει στη δηλωμένη συμβολοσειρά. Εφόσον η υποσυμβολοσειρά δεν βρίσκεται στη συμβολοσειρά, η έξοδος είναι όπως φαίνεται παραπάνω.

Η αντικατάσταση της δευτερεύουσας συμβολοσειράς ‘find’ με τη δευτερεύουσα συμβολοσειρά ‘that’ και ο έλεγχος εάν υπάρχει στη συμβολοσειρά ή όχι, θα επέστρεφε ‘substring βρέθηκε’ αντ ‘αυτού επειδή υπάρχει στη συμβολοσειρά.

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

string = 'using string to find if a substring is present in a string'

if string.find('found') != -1:

    print("The substring 'found' exists")

else:

    print("The substring 'found' does not exist")

παραγωγή:

<code class="language-python">The substring 'found' does not exist

Στο παραπάνω παράδειγμα, προσπαθήσαμε να βρούμε μια υποσυμβολοσειρά που δεν είναι μέρος της συμβολοσειράς μας. Όπως είδαμε παραπάνω, η συνάρτηση find() ελέγχει ολόκληρη τη συμβολοσειρά και δεν βρίσκεται αυτή η συγκεκριμένη υποσυμβολοσειρά «βρέθηκε», επιστρέφει ως έξοδο την έξοδο «Η υποσυμβολοσειρά που βρέθηκε δεν υπάρχει».

Εύρεση του αριθμού των εμφανίσεων μιας υποσυμβολοσειράς

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

string = " Counting the number of occurrences of 'o' in this string "

print("The 'o' substring count is: ",string.count('o'));

Παραγωγή:

The 'o' substring count is:  5

συμπέρασμα

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

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

Καλή κωδικοποίηση!