据我所知,当您执行该语句时>>
if object in list: #do something
在Python中,它正在内部检查
==
与object
中每个元素之间的list
,这将引用这两个对象的__eq__
方法。这可能意味着内存中两个不同的对象是“相等的”,如果所有对象的所有属性都相同,则通常需要这样做。
但是,有没有一种方法可以以Python的方式实现诸如in
之类的谓词,其中基础等式检查为is
-也就是说,我们实际上正在检查两个对象是否指向相同的地址?
据我所知,当执行语句if list中的对象时:#在Python中做某事,它在内部检查object和list中的每个元素之间的==,这将引用...
使用any
功能:
if any(x is object for x in lst):
# ...
如果您想专门使用is
,则只需使用过滤器,如: