num = [1,2,3,4]
num == list(num)
それはとして真、 なぜ 'リストはリスト(リスト)'は、Pythonでfalseですか?
num is list(num)
は
偽を与えるを与えます。
これら2つの違いは何ですか?どちらの文でもPythonは何をしますか?
num = [1,2,3,4]
num == list(num)
それはとして真、 なぜ 'リストはリスト(リスト)'は、Pythonでfalseですか?
num is list(num)
は
偽を与えるを与えます。
これら2つの違いは何ですか?どちらの文でもPythonは何をしますか?
==
は、内容を比較する2つのリストについてlist.__eq__
を呼び出します。 is
はオブジェクト参照を比較します。 is
True
を返すと、両方の名前がメモリ内の同じオブジェクトを指していることを意味します。
list
常には、入力が別のリストであっても、浅いコピーを作成します。理由は、list
が変更可能なタイプであるためです。あなたは、他のものを変更することなく一つのリストを変更できたいと思っています。
tuple
では同じ動作は起こりませんが、これは不変です。 tuple(some_tuple) is some_tuple
はTrue
となります。
ありがとうございます。あなたはそれをうまく説明した。 – karthiq
list()
新しいリストを作成します。新しく作成されたリストは元の(ただし==
)と同じではありません(is
)。
@アワワニ。まったく詐欺ではない。タプルはこの動作をしませんが、stringとlistは動作します。具体的なタイプはここで重要です。おかげさまで –