Στην Python, μπορούμε να εκτελέσουμε τη διαδικασία του “slicing” για να εξάγουμε ένα τμήμα ενός string. Το slicing μας επιτρέπει να επιλέξουμε μόνο ένα μέρος του string βάσει των θέσεων των χαρακτήρων του. Μπορούμε να καθορίσουμε την αρχή και το τέλος του τμήματος που θέλουμε να εξάγουμε και να πάρουμε το υποσύνολο των χαρακτήρων που εντάσσονται ανάμεσα σε αυτά τα όρια.
Η σύνταξη του slicing σε Python είναι η εξής:
string[start:stop]
Όπου start
είναι η αρχική θέση και stop
είναι η τελική θέση. Το αποτέλεσμα είναι ένα νέο string που αποτελείται από τους χαρακτήρες από τη θέση start
μέχρι τη θέση stop-1
.
Αν δεν καθορίσουμε την start
, τότε το slicing θα ξεκινά από την αρχή του string. Αν δεν καθορίσουμε την stop
, τότε το slicing θα συνεχίζεται μέχρι το τέλος του string.
Επιπλέον, μπορούμε να χρησιμοποιήσουμε αρνητικούς δείκτες για το slicing. Σε αυτήν την περίπτωση, η αρνητική τιμή αντιστοιχεί σε θέση από το τέλος του string. Δηλαδή, -1
αντιστοιχεί στον τελευταίο χαρακτήρα, -2
στον προτελευταίο, και ούτω καθεξής.
[adinserter block=”2″]
Στην Python, μπορούμε να αναφέρουμε ένα εύρος ενός string χρησιμοποιώντας τον τελεστή slicing [:]. Ο δείκτης αριστερά του τελεστή αντιστοιχεί στη θέση του πρώτου χαρακτήρα που θέλουμε να εξαγάγουμε, ενώ ο δείκτης δεξιά του τελεστή αντιστοιχεί στη θέση του τελευταίου χαρακτήρα που επιθυμούμε να εξαγάγουμε (αλλά δεν περιλαμβάνεται στην απόσπαση). Με τον τελεστή slicing, μπορούμε να πάρουμε ένα υποσύνολο των χαρακτήρων του string βάσει του καθορισμένου εύρους.
Επιπλέον, στην Python, μπορούμε να χρησιμοποιήσουμε τη σύνταξη [start:end:step] για να δώσουμε ένα βήμα στο slicing. Η παράμετρος start αντιστοιχεί στη θέση του πρώτου χαρακτήρα που επιθυμούμε να εξάγουμε, η παράμετρος end αντιστοιχεί στη θέση του τελευταίου χαρακτήρα που επιθυμούμε να εξάγουμε (χωρίς να συμπεριλαμβάνεται), ενώ η παράμετρος step αντιστοιχεί στο βήμα που θέλουμε να πραγματοποιηθεί μεταξύ των χαρακτήρων. Αυτό μας επιτρέπει να εξάγουμε μια υπο-ακολουθία με συγκεκριμένα βήματα ανάμεσα στους χαρακτήρες του αρχικού string.
Παρακάτω βλέπουμε μερικά παραδείγματα:
my_string = "Hello, World!" # Εκτύπωση του υποσυμβολοσειράς από τον χαρακτήρα με θέση 2 μέχρι 5 (μη συμπεριλαμβανομένου) print(my_string[2:5]) # Αποτέλεσμα: llo # Εκτύπωση του υποσυμβολοσειράς από την αρχή μέχρι τον χαρακτήρα με θέση 5 (μη συμπεριλαμβανομένου) print(my_string[:5]) # Αποτέλεσμα: Hello # Εκτύπωση του υποσυμβολοσειράς από τον χαρακτήρα με θέση 7 και μετά print(my_string[7:]) # Αποτέλεσμα: World! # Εκτύπωση του υποσυμβολοσειράς από τον έκτο χαρακτήρα από το τέλος μέχρι τον προτελευταίο χαρακτήρα (μη συμπεριλαμβανομένου) print(my_string[-6:-1]) # Αποτέλεσμα: World
Στο παραπάνω παράδειγμα, μαθαίνουμε ότι μπορούμε να επιλέξουμε ένα συγκεκριμένο τμήμα της συμβολοσειράς χρησιμοποιώντας τη συντακτική [start:stop]
. Αν δεν ορίσουμε την τιμή του start
ή του stop
, η Python θα χρησιμοποιήσει την αρχή ή το τέλος της συμβολοσειράς αντίστοιχα. Αυτό μας επιτρέπει να επιλέξουμε ένα συγκεκριμένο εύρος χαρακτήρων από τη συμβολοσειρά. Επιπλέον, μπορούμε να χρησιμοποιήσουμε αρνητικούς αριθμούς για να επιλέξουμε τμήματα της συμβολοσειράς από το τέλος προς την αρχή. Αυτό είναι χρήσιμο όταν θέλουμε να αντιστρέψουμε τη σειρά των χαρακτήρων που επιλέγουμε.
[adinserter block=”3″]
Για να επιστρέψετε μια υποσυμβολοσειρά από την αρχή της αρχικής συμβολοσειράς μέχρι ένα συγκεκριμένο σημείο, μπορείτε να χρησιμοποιήσετε τον τελεστή slicing “:” με μόνο το δείκτη του τέλους.
Παράδειγμα:
# Αρχική συμβολοσειρά string = "Hello, World!" # Αντιγραφή των πρώτων πέντε χαρακτήρων της αρχικής συμβολοσειράς στη μεταβλητή `result` result = string[:5] # Εκτύπωση της μεταβλητής `result`, που περιέχει την υποσυμβολοσειρά "Hello" print(result)
Ο παραπάνω κώδικας Python αναφέρεται στην ανάθεση της τιμής μιας υποσυμβολοσειράς στη μεταβλητή string
και στη συνέχεια στη δημιουργία μιας νέας υποσυμβολοσειράς με βάση την αρχική.
Στον κώδικα, η σύνταξη string[:5]
χρησιμοποιείται για να επιλέξει τους πρώτους πέντε χαρακτήρες της αρχικής συμβολοσειράς. Η υποσυμβολοσειρά αυτή αποθηκεύεται στη μεταβλητή result
. Στη συνέχεια, η τιμή της μεταβλητής result
εκτυπώνεται και το αναμενόμενο αποτέλεσμα είναι η εμφάνιση της υποσυμβολοσειράς “Hello” στην έξοδο.
Αποτέλεσμα:
Hello
Στην Python, μπορούμε να αναγνωρίσουμε ένα κομμάτι ενός string από μια συγκεκριμένη θέση και μέχρι το τέλος του χρησιμοποιώντας τη σύνταξη [start:]
. Το κομμάτι αυτό θα αρχίσει από τη θέση start
και θα συνεχιστεί έως το τέλος του string.
Για παράδειγμα, αν έχουμε το string "Hello, World!"
, τότε η σύνταξη "Hello, World!"[7:]
θα επιστρέψει το υποκομμάτι του string από τη θέση 7 μέχρι το τέλος του, δηλαδή το "World!"
.
Αυτή η σύνταξη μας επιτρέπει να επιλέξουμε μια υποσυμβολοσειρά που αποτελείται από τα χαρακτήρες μιας αρχικής συμβολοσειράς από μια συγκεκριμένη θέση και μετά.
Παράδειγμα:
my_string = "Hello, World!" # εκτύπωση από τον 7ο χαρακτήρα μέχρι το τέλος του string print(my_string[7:])
Το παραπάνω παράδειγμα θα εκτυπώσει το κομμάτι του string από τον 7ο χαρακτήρα και μετά, δηλαδή "World!"
.
[adinserter block=”4″]
Ο αρνητικός δείκτης χρησιμοποιείται για να αναφερθούμε στα στοιχεία του string από το τέλος προς την αρχή. Η αντιστοιχία των αρνητικών δεικτών με τους θετικούς φαίνεται στο παρακάτω διάγραμμα:
+---+---+---+---+---+ | H | e | l | l | o | +---+---+---+---+---+ 0 1 2 3 4 -5 -4 -3 -2 -1
Για παράδειγμα, το τελευταίο στοιχείο του string “Hello” μπορεί να προσπελαστεί είτε με τον θετικό δείκτη 4
είτε με τον αρνητικό δείκτη -1
.
Μπορούμε να χρησιμοποιήσουμε αρνητικούς δείκτες για να προσπελάσουμε στοιχεία του string από το τέλος προς την αρχή με τη χρήση της σύνταξης string[-n:]
, όπου n
είναι ένας ακέραιος αριθμός που αντιστοιχεί στον αριθμό των στοιχείων που θέλουμε να επιστρέψουμε.
Παρακάτω έχουμε μερικά παραδείγματα σε κώδικα Python:
string = "Hello, World!" # Εκτύπωση του τελευταίου χαρακτήρα της συμβολοσειράς print(string[-1]) # Αποτέλεσμα: ! # Εκτύπωση της υποσυμβολοσειράς από τον έκτο χαρακτήρα από το τέλος μέχρι τον προτελευταίο χαρακτήρα (μη συμπεριλαμβανομένου) print(string[-6:-1]) # Αποτέλεσμα: World # Εκτύπωση της υποσυμβολοσειράς από την αρχή μέχρι τον έκτο χαρακτήρα από το τέλος (μη συμπεριλαμβανομένου) print(string[:-7]) # Αποτέλεσμα: Hello