Πώς να διαγράψετε έναν χαρακτήρα από μια συμβολοσειρά χρησιμοποιώντας την Python

Υπάρχει μια συμβολοσειρά, για παράδειγμα. "ΠΑΡΑΔΕΙΓΜΑ".

Πώς μπορώ να αφαιρέσω τον μεσαίο χαρακτήρα, δηλαδή το M από αυτό; Δεν χρειάζομαι τον κώδικα. Θέλω να ξέρω:

  • Τελειώνουν οι συμβολοσειρές στην Python σε κάποιον ειδικό χαρακτήρα;
  • Ποιος είναι καλύτερος τρόπος - μετατόπιση των πάντων από δεξιά προς τα αριστερά ξεκινώντας από τον μεσαίο χαρακτήρα Ή δημιουργία νέας συμβολοσειράς και μη αντιγραφή του μεσαίου χαρακτήρα;
Λύση

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

newstr = oldstr.replace("M", "")

Αν θέλετε να αφαιρέσετε τον κεντρικό χαρακτήρα:

midlen = len(oldstr)/2   # //2 in python 3
newstr = oldstr[:midlen] + oldstr[midlen+1:]

Ρωτήσατε αν οι συμβολοσειρές τελειώνουν με ειδικό χαρακτήρα. Όχι, σκέφτεστε σαν προγραμματιστής της C. Στην Python, οι συμβολοσειρές αποθηκεύονται με το μήκος τους, οπότε οποιαδήποτε τιμή byte, συμπεριλαμβανομένου του \0, μπορεί να εμφανιστεί σε μια συμβολοσειρά.

Σχόλια (3)

Αυτός είναι ίσως ο καλύτερος τρόπος:

original = "EXAMPLE"
removed = original.replace("M", "")

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

Σχόλια (3)

Για την αντικατάσταση μιας συγκεκριμένης θέσης:

s = s[:pos] + s[(pos+1):]

Για να αντικαταστήσετε έναν συγκεκριμένο χαρακτήρα:

s = s.replace('M','')
Σχόλια (3)