3

基本的な python の質問: 文字列変数があるとします

x='sdfghjk' 

文字列の文字の一部だけを使用し、それらを同じ名前に割り当てる必要があります。

x=x[x.index('g'):]

新しいxものはメモリの観点から古いものの「代わりに」来ますか、それとも重複を作成して理由もなく余分なメモリを使用していますか?

4

2 に答える 2

4

新しい x は、メモリの観点から古い x の「代わりに」来ますか、それとも重複を作成して、理由もなく余分なメモリを使用していますか?

Python 文字列は不変であるため、複製を作成しているため、より多くのメモリが必要になります。代わりにあなたがするなら...

>>> x = 'sdfghjk'
>>> x = buffer(x, x.index('g'))
>>> print x
ghjk

...同様の結果が得られますが、x変数は元の文字列が割り当てられたのと同じメモリ ブロックを参照するようになりました。これは、大量の文字列を処理している場合に適しています。

または、変更可能な文字列が必要な場合は、bytearray.

于 2013-04-23T15:24:35.813 に答える