2012-01-28 35 views
0

例の一つがA`と ``の違いは何ですか[:] `

a[:] = [] 

で終わりに向かって、Pythonの3.2チュートリアルhereを読むには

a = [] 
この相当ですが

?そうであれば、なぜaの代わりにa[:]と書いたのですか?そうでない場合、違いは何ですか?あなたが期待するとして、説明されて

答えて

7

リストのシャローコピーを返します彼らは等価ではないことを意味し。これらの2つの例は、あなたにその違いを理解させるはずです。

例1:

>>> b = [1,2,3] 
>>> a = b 
>>> a[:] = [] 
>>> print b 
[] 

例2:

>>> b = [1,2,3] 
>>> a = b 
>>> a = [] 
>>> print b 
[1,2,3] 
1

は、右の彼らはそれを使用していた:

これは、次のスライスが

1

第二行はリストを修正しない、それは単に新しい、空のリストを指すようにaを手配。最初の行は、で指されているリストを変更します。 Pythonインタプリタでは、このサンプルseesionを考えてみましょう:

>>> b=[1,2,3] 
>>> a=b 
>>> a[:]=[] 
>>> a 
[] 
>>> b 
[] 

両方aと同じリストにbポイントなので、我々はa[:]=[]が今同じ空リストの両方abポイントをリストを空にしていることがわかります。

関連する問題