Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用“in”操作符在python列表中查找对象_Python_List_Keyword - Fatal编程技术网

使用“in”操作符在python列表中查找对象

使用“in”操作符在python列表中查找对象,python,list,keyword,Python,List,Keyword,是否可以执行如下操作: if obj in a_list_of_the_same_obj_type: #do stuff 我的obj已经有了uuu eq_uuuu和uuu ne_uu_uuu函数,可以在属性上进行比较,所以我认为in关键字会调用它,但它看起来不像 您需要实现才能测试成员资格在这种情况下,操作符“In”调用python内置列表对象的uu contains,然后调用对象的u eq,因此,请确保obj类中的uuu eq u dunder方法已正确实现。提示:uu包含u你在使

是否可以执行如下操作:

if obj in a_list_of_the_same_obj_type:
     #do stuff

我的obj已经有了uuu eq_uuuu和uuu ne_uu_uuu函数,可以在属性上进行比较,所以我认为in关键字会调用它,但它看起来不像

您需要实现才能测试成员资格

在这种情况下,操作符“In”调用python内置列表对象的uu contains,然后调用对象的u eq,因此,请确保obj类中的uuu eq u dunder方法已正确实现。

提示:uu包含u你在使用什么代码?我做了一个小实验,in for list肯定使用了u eq u。问题可能在于uuu eq uuuuuu和uuu ne uuuuu的实现。成员资格测试需要uuu散列uuuuuuu而不是uuuu eq。测试通常会读取这个obj在这个序列中,而不是序列中包含一个与我相等的对象,因此成员资格测试对于不可变的对象最为实用。正如@morsecodist所提到的,uuu eq_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u,不是自定义类型。已同意。in正在列表上被调用,因此该列表调用了它的_contains__方法。还是我遗漏了什么?我部分同意,但OP说“eq”已经实现了。如果这是自定义类的列表,并且目标是测试同一类的成员资格-_ueq_u,如果肯定足够的话。如果这不起作用,我假设同一对象类型的列表不支持迭代协议。@Slam这是答案;我刚用过。