2016-06-28 3 views
0

Nehmen wir an, ich habe eine str der Länge 5: Hello. Wenn ich durch jedes Zeichen aus dem Index 1 auf, iterieren wollte würde ich es tun, wie folgt:Wird beim Iterieren eines String Slice ein neues Objekt erstellt?

s = 'Hello' 
for c in s[1:]: 
    # do something 

Does Looping wie folgt ein neues str Objekt von 4 Länge erstellen? Ich kann sehen, es ist sehr Speicher ineffizient mit größeren Strings ...

+1

Es tut, und es ist. Wenn das ein Problem ist, könnte ich glaube, dass ['itertools.islice'] (https://docs.python.org/2.7/library/itertools.html#itertools.islice) nützlich sein könnte. – jonrsharpe

+0

Oh ja, es ist genau dasselbe Frage. Ich glaube, ich wusste nicht, wie ich es richtig formulieren sollte. – shooqie

+0

@shooqie Keine Sorge, geschätzt, um es als ein Duplikat zu markieren und eine nachdenkliche Frage zu haben. Nur eine FYI, Google kann oft eine bessere Ressource als die Stack-Overflow-Suchleiste zum Auffinden von Fragen zu Stack Overflow, so seltsam das klingen mag. – miradulo

Antwort

0

Ja, es tut.

Auch dabei wird s[:] eine neue Zeichenfolge identisch mit dem vorherigen erstellen.

Dies funktioniert auch mit Listen.