0
in
演算子はPythonでどのように動作しますか?Pythonでは 'in'演算子はどのように機能しますか?
以下の例では、異なるオブジェクトである2つの名前付きタプルがありますが、in
演算子はオブジェクトの1つを含む配列に対してTrueと評価されます。
in
アレイにオブジェクトが含まれているかどうかを確認するか、アレイ内のオブジェクトが同等かどうかを確認しますか?私はドキュメントを検索しようとしましたが、具体的なものは見つけられませんでした。
In [3]: a = namedtuple('test', ['t'])
In [6]: b = a(1)
In [7]: c = a(1)
In [8]: b is c
Out[8]: False
In [9]: id(b)
Out[9]: 54740808
In [10]: id(c)
Out[10]: 88817352
In [11]: c in [b]
Out[11]: True
In [12]: b in [c]
Out[12]: True
In [13]: c == b
Out[13]: True
__() '演算子の右側のオブジェクトのメソッド。それが 'list'の場合は' __eq __() 'メソッドを呼び出します(これはカスタム' __eq __() 'メソッドを持つクラスを実装することで明らかになります)、' set'または 'dict_keys'でハッシュを比較します私は推測するが、わからない。また、 '__eq __()'メソッドを持たない要素がある場合、 'in'は' NotImplemented'を返さず、それらは静かにスキップされます。 – deeenes