2016-09-21 3 views
1

基本一覧私はPythonのインタラクティブシェルで、非常に基本的なコードを試してみました操作

>>> a=[1,2,3] 
>>> id(a) 
36194248L 
>>> a.append(4) 
>>> a 
[1, 2, 3, 4] 
>>> id(a) 
36194248L 
>>> 
>>> id([1,2,3]) 
36193288L 
>>> id([1,2,3].append(4)) 
506033800L 
>>> id([1,2,3].append(5)) 
506033800L 
>>> id([1,2,3].append(6)) 
506033800L 

Q:私は「」という名前の変数にリストを割り当て、より多くの価値を追加しようとすると、ID()変更されませんが、変数に代入せずに同じことをしようとすると、id()が変更されます。リストは変更可能です(つまり、同じメモリアドレスで変更できます)。

答えて

4

list.append()は、リストではなくNoneを返します。

このオブジェクトの結果はid()です。Noneはシングルトンです。それは常には、与えられたPythonインタプリタの実行のために同じことでしょう:唯一の1つのインスタンスがあるでしょう、あなたがid(None)呼び出している

>>> id(None) 
4514447768 
>>> [].append(1) is None 
True 
>>> id([].append(1)) 
4514447768 
1

list.appendので戻りNone、、。

関連する問題