In C++ kann ich eine Iteration über eine std::string
wie diese:
std::string str = "Hello World!";
for (int i = 0; i < str.length(); ++i)
{
std::cout << str[i] << std::endl;
}
Wie kann ich in Python über eine Zeichenkette iterieren?
In C++ kann ich eine Iteration über eine std::string
wie diese:
std::string str = "Hello World!";
for (int i = 0; i < str.length(); ++i)
{
std::cout << str[i] << std::endl;
}
Wie kann ich in Python über eine Zeichenkette iterieren?
Wenn Sie einen funktionaleren Ansatz für die Iteration über eine Zeichenkette verwenden möchten (vielleicht um sie irgendwie umzuwandeln), können Sie die Zeichenkette in Zeichen aufteilen, eine Funktion auf jedes einzelne Zeichen anwenden und dann die resultierende Liste von Zeichen wieder zu einer Zeichenkette zusammenfügen.
Eine Zeichenkette ist von Natur aus eine Liste von Zeichen, daher wird 'map' die Zeichenkette - als zweites Argument - durchlaufen und die Funktion - das erste Argument - auf jedes einzelne Zeichen anwenden.
Hier verwende ich zum Beispiel einen einfachen Lambda-Ansatz, da ich nur eine triviale Änderung des Zeichens vornehmen möchte: Hier soll jeder Zeichenwert erhöht werden:
>>> ''.join(map(lambda x: chr(ord(x)+1), "HAL"))
'IBM'
oder allgemeiner ausgedrückt:
>>> ''.join(map(my_function, my_string))
wobei my_function einen char-Wert annimmt und einen char-Wert zurückgibt.
Sie können auch Folgendes tun:
txt = "Hello World!"
print (*txt, sep='\n')
Dabei werden keine Schleifen verwendet, sondern die interne Druckanweisung übernimmt diese Aufgabe.
*
entpackt die Zeichenkette in eine Liste und sendet sie an die Druckanweisung
sep='\n'
sorgt dafür, dass das nächste Zeichen in eine neue Zeile gedruckt wird
Die Ausgabe wird sein:
H
e
l
l
o
W
o
r
l
d
!
Wenn Sie eine Schleifenanweisung benötigen, können Sie, wie bereits von anderen erwähnt, eine for-Schleife wie diese verwenden:
for x in txt: print (x)
Wenn Sie jemals in eine Situation kommen, in der Sie get the next char of the word using __next__()
zu erstellen, denken Sie daran, eine string_iterator
und iterieren darüber und nicht über die original string (it does not have the __next__() method)
In diesem Beispiel, wenn ich ein Zeichen finde = [
Ich suche weiter nach dem nächsten Wort und finde es nicht. ]
also muss ich __next__ verwenden
hier würde eine for-Schleife über die Zeichenkette nicht helfen
myString = "'string' 4 '['RP0', 'LC0']' '[3, 4]' '[3, '4']'"
processedInput = ""
word_iterator = myString.__iter__()
for idx, char in enumerate(word_iterator):
if char == "'":
continue
processedInput+=char
if char == '[':
next_char=word_iterator.__next__()
while(next_char != "]"):
processedInput+=next_char
next_char=word_iterator.__next__()
else:
processedInput+=next_char
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.