如何使用内存位置而不是对象相等性在Python中检查对象是否“可迭代”

问题描述 投票:0回答:2

据我所知,当您执行该语句时>>

if object in list:
    #do something

在Python中,它正在内部检查==object中每个元素之间的list,这将引用这两个对象的__eq__方法。这可能意味着内存中两个不同的对象是“相等的”,如果所有对象的所有属性都相同,则通常需要这样做。

但是,有没有一种方法可以以Python的方式实现诸如in之类的谓词,其中基础等式检查为is-也就是说,我们实际上正在检查两个对象是否指向相同的地址?

据我所知,当执行语句if list中的对象时:#在Python中做某事,它在内部检查object和list中的每个元素之间的==,这将引用...

python list equality
2个回答
1
投票

使用any功能:

if any(x is object for x in lst):
    # ...

0
投票

如果您想专门使用is,则只需使用过滤器,如:

© www.soinside.com 2019 - 2024. All rights reserved.