580 Stimmen

Wie man mit Python ein Zeichen aus einer Zeichenkette löscht

Es gibt z. B. eine Zeichenkette. EXAMPLE .

Wie kann ich das mittlere Zeichen entfernen, d.h., M von ihr? Ich brauche den Code nicht. Ich möchte es wissen:

  • Endet eine Zeichenkette in Python mit einem Sonderzeichen?
  • Was ist besser - alles von rechts nach links zu verschieben, beginnend mit dem mittleren Zeichen ODER eine neue Zeichenfolge zu erstellen und das mittlere Zeichen nicht zu kopieren?

0 Stimmen

12voto

Richard Fearn Punkte 24179

Wie kann ich das mittlere Zeichen, d.h. M, entfernen?

Das geht nicht, denn Strings in Python sind unveränderlich .

Endet eine Zeichenkette in Python mit einem Sonderzeichen?

Nein. Sie ähneln Listen von Zeichen; die Länge der Liste definiert die Länge der Zeichenkette, und kein Zeichen dient als Abschlusszeichen.

Was ist besser - alles von rechts nach links zu verschieben, beginnend mit dem mittleren Zeichen ODER eine neue Zeichenfolge zu erstellen und das mittlere Zeichen nicht zu kopieren?

Sie können die vorhandene Zeichenkette nicht ändern, sondern müssen eine neue Zeichenkette erstellen, die alles außer dem mittleren Zeichen enthält.

9voto

user1443297 Punkte 91
def kill_char(string, n): # n = position of which character you want to remove
    begin = string[:n]    # from beginning to n (n not included)
    end = string[n+1:]    # n+1 through end of string
    return begin + end
print kill_char("EXAMPLE", 3)  # "M" removed

Ich habe dies irgendwo gesehen aquí .

6voto

StaffanRolfsson Punkte 79
card = random.choice(cards)
cardsLeft = cards.replace(card, '', 1)

So entfernen Sie ein Zeichen aus einer Zeichenkette: Hier ein Beispiel, bei dem ein Stapel von Karten als Zeichen in einer Zeichenkette dargestellt wird. Eine davon wird gezogen (importieren Sie das Modul random für die Funktion random.choice(), die ein zufälliges Zeichen aus der Zeichenkette auswählt). Ein neuer String, cardsLeft, wird erstellt, um die verbleibenden Karten aufzunehmen, die durch die String-Funktion replace() gegeben sind, wobei der letzte Parameter angibt, dass nur eine "Karte" durch den leeren String ersetzt werden soll...

6voto

killown Punkte 4037

Sur Python 2 können Sie verwenden UserString.MutableString um es auf eine veränderliche Weise zu tun:

>>> import UserString
>>> s = UserString.MutableString("EXAMPLE")
>>> type(s)
<class 'UserString.MutableString'>
>>> del s[3]    # Delete 'M'
>>> s = str(s)  # Turn it into an immutable value
>>> s
'EXAPLE'

MutableString wurde in Python 3 entfernt.

3 Stimmen

404 Website kein Import

3voto

Kyoujin Punkte 305

Eine andere Möglichkeit ist die Verwendung einer Funktion,

Im Folgenden finden Sie eine Möglichkeit, alle Vokale aus einer Zeichenkette zu entfernen, indem Sie einfach die Funktion

def disemvowel(s):
    return s.translate(None, "aeiouAEIOU")

4 Stimmen

Meinst du s.translate(str.maketrans("", "", "aeiouAEIOU")) ?

1 Stimmen

@DynoFu Ich glaube, das hat er gemeint, denn deine Antwort ist die einzige, die in diesem ganzen Thread Sinn macht. Alle anderen werden sehr kompliziert, wenn man zusätzliche Zeichen entfernen muss.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X