2016-06-28 3 views
0

私は長さ5のstrを持っているとしましょう:Hello私は上のインデックス1からすべての文字を反復処理したい場合は、私はこのようにそれを行うだろう:文字列スライスを反復処理すると、新しいオブジェクトが作成されますか?

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

これは長さ4の新しいstrオブジェクトを作成するようにループしていますか?大きな文字列ではメモリが非常に非効率的であることがわかります...

+1

そうです。これが問題であれば、私は['itertools.islice'](https://docs.python.org/2.7/library/itertools.html#itertools.islice)が役に立つかもしれないと思います – jonrsharpe

+0

ああ、それはまったく同じです質問。私はそれを正しく語る方法を知らなかったと思う。 – shooqie

+0

@shooqieあなた自身を重複したものとしてマークし、思慮深い疑問を持っていることに心から感謝します。ちょうど参考になりますが、スタックオーバフローの検索バーよりも優れたリソースであることがよくあります。 – miradulo

答えて

0

はいです。

さらに、s[:]を実行すると、前と同じ新しい文字列が作成されます。

これもリストでも同じです。

関連する問題