2017-12-28 17 views
0
num = [1,2,3,4] 
num == list(num) 

それはとしてなぜ 'リストはリスト(リスト)'は、Pythonでfalseですか?

num is list(num) 

を与えるを与えます。

これら2つの違いは何ですか?どちらの文でもPythonは何をしますか?

+0

@アワワニ。まったく詐欺ではない。タプルはこの動作をしませんが、stringとlistは動作します。具体的なタイプはここで重要です。おかげさまで –

答えて

3

==は、内容を比較する2つのリストについてlist.__eq__を呼び出します。 isはオブジェクト参照を比較します。 isTrueを返すと、両方の名前がメモリ内の同じオブジェクトを指していることを意味します。

list常には、入力が別のリストであっても、浅いコピーを作成します。理由は、listが変更可能なタイプであるためです。あなたは、他のものを変更することなく一つのリストを変更できたいと思っています。

tupleでは同じ動作は起こりませんが、これは不変です。 tuple(some_tuple) is some_tupleTrueとなります。

+0

ありがとうございます。あなたはそれをうまく説明した。 – karthiq

1

list()新しいリストを作成します。新しく作成されたリストは元の(ただし==)と同じではありません(is)。

関連する問題