Es gibt zum Beispiel eine Zeichenfolge. EXAMPLE
.
Wie kann ich das mittlere Zeichen entfernen, d. H. M
daraus? Ich brauche den Code nicht. Ich möchte gerne wissen:
In Python sind Zeichenfolgen unveränderlich. Sie müssen also eine neue Zeichenfolge erstellen. Sie haben einige Möglichkeiten, wie Sie die neue Zeichenfolge erstellen. Wenn Sie das 'M' entfernen möchten, wo immer es erscheint:
newstr = oldstr.replace("M", "")
Wenn Sie das zentrale Zeichen entfernen möchten:
midlen = len(oldstr)/2
newstr = oldstr[:midlen] + oldstr[midlen+1:]
Sie haben gefragt, ob Zeichenfolgen mit einem Sonderzeichen enden. Nein, Sie denken wie ein C-Programmierer. In Python werden Zeichenfolgen mit ihrer Länge gespeichert, sodass jeder Bytewert, einschließlich \0
, in einer Zeichenfolge angezeigt werden kann.
Dies ist wahrscheinlich der beste Weg:
original = "EXAMPLE"
removed = original.replace("M", "")
Mach dir keine Sorgen über das Verschieben von Charakteren und so. Der meiste Python-Code findet auf einer viel höheren Abstraktionsebene statt.
Um eine bestimmte Position zu ersetzen:
s = s[:pos] + s[(pos+1):]
So ersetzen Sie ein bestimmtes Zeichen:
s = s.replace('M','')
Strings sind unveränderlich. Sie können sie jedoch in eine Liste konvertieren, die veränderbar ist, und die Liste dann wieder in eine Zeichenfolge konvertieren, nachdem Sie sie geändert haben.
s = "this is a string"
l = list(s) # convert to list
l[1] = "" # "delete" letter h (the item actually still exists but is empty)
l[1:2] = [] # really delete letter h (the item is actually removed from the list)
del(l[1]) # another way to delete it
p = l.index("a") # find position of the letter "a"
del(l[p]) # delete it
s = "".join(l) # convert back to string
Sie können auch eine neue Zeichenfolge erstellen, indem Sie, wie andere gezeigt haben, alles außer dem gewünschten Zeichen aus der vorhandenen Zeichenfolge entnehmen.
Wie kann ich das mittlere Zeichen, d. H. M, entfernen?
Das geht nicht, weil Strings in Python unveränderlich sind.
Enden die Zeichenfolgen in Python mit einem Sonderzeichen?
Nein. Sie ähneln Listen von Zeichen. Die Länge der Liste definiert die Länge der Zeichenfolge. Kein Zeichen fungiert als Abschlusszeichen.
Was ist ein besserer Weg - alles von rechts nach links zu verschieben, beginnend mit dem mittleren Zeichen OR, Erstellen eines neuen Strings und nicht das mittlere Zeichen kopieren?
Sie können die vorhandene Zeichenfolge nicht ändern. Sie müssen also eine neue Zeichenfolge erstellen, die alles außer dem mittleren Zeichen enthält.
Verwenden Sie die Methode translate()
:
>>> s = 'EXAMPLE'
>>> s.translate(None, 'M')
'EXAPLE'
card = random.choice(cards)
cardsLeft = cards.replace(card, '', 1)
So entfernen Sie ein Zeichen aus einer Zeichenfolge: Hier ist ein Beispiel, in dem ein Stapel von Karten als Zeichen in einer Zeichenfolge dargestellt ist . Eine davon wird gezeichnet (Importieren des Zufallsmoduls für die Zufallszahlen). choice () - Funktion, die ein zufälliges Zeichen in der Zeichenfolge auswählt) ..__ Eine neue Zeichenfolge, cardsLeft, wird erstellt, um die verbleibenden Karten zu enthalten, die von der Zeichenfolgenfunktion replace () übergeben werden, wobei der letzte Parameter angibt, dass nur eine "Karte" soll durch die leere Zeichenfolge ersetzt werden ...
Veränderliche Weise:
import UserString
s = UserString.MutableString("EXAMPLE")
>>> type(s)
<type 'str'>
# Delete 'M'
del s[3]
# Turn it for immutable:
s = str(s)
Folgendes habe ich getan, um das "M" herauszuschneiden:
s = 'EXAMPLE'
s1 = s[:s.index('M')] + s[s.index('M')+1:]
Wenn Sie Zeichen in einer Zeichenfolge löschen oder ignorieren möchten, und Sie diese Zeichenfolge haben,
[11: L: 0]
angenommen, Sie verwenden Anfragen aus einer Web-API-Antwort oder ähnlich wie eine CSV-Datei
import requests
udid = 123456
url = 'http://webservices.yourserver.com/action/id-' + udid
s = requests.Session()
s.verify = False
resp = s.get(url, stream=True)
content = resp.content
schleifen und unerwünschte Zeichen loswerden:
for line in resp.iter_lines():
line = line.replace("[", "")
line = line.replace("]", "")
line = line.replace('"', "")
Optionale Aufteilung, und Sie können die Werte einzeln lesen:
listofvalues = line.split(':')
Nun ist der Zugriff auf jeden Wert einfacher:
print listofvalues[0]
print listofvalues[1]
print listofvalues[2]
Dies wird gedruckt
11
L
0
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 das irgendwo gesehen hier .
So löschen Sie eine char
oder einen sub-string
einmal (nur beim ersten Auftreten):
main_string = main_string.replace(sub_str, replace_with, 1)
HINWEIS: Hier kann 1
durch eine beliebige int
für die Anzahl der Vorkommnisse ersetzt werden, die Sie ersetzen möchten.
from random import randint
def shuffle_Word(word):
newWord=""
for i in range(0,len(Word)):
pos=randint(0,len(Word)-1)
newWord += Word[pos]
Word = Word[:pos]+Word[pos+1:]
return newWord
Word = "Sarajevo"
print(shuffle_Word(word))
Sie können einfach Listenverständnis verwenden.
Angenommen, Sie haben die Zeichenfolge: my name is
und möchten das Zeichen m
entfernen. Verwenden Sie den folgenden Code:
"".join([x for x in "my name is" if x is not 'm'])