我有一个包含不同对象的嵌套列表,它们是嵌套列表中重复的对象对,我试图删除它们,但是我一直得到一个
TypeError: unorderable types: practice() < practice()
我知道这个错误是由于我尝试使用对象而不是整数造成的,但是我不知道如何删除重复项
class practice:
id = None
def __init__(self,id):
self.id = id
a = practice('a')
b = practice('b')
c = practice('c')
d = practice('d')
e = practice('e')
f = practice('f')
x = [[a,b],[c,d],[a,b],[e,f],[a,b]]
unique_list = list()
for item in x:
if sorted(item) not in unique_list:
unique_list.append(sorted(item))
print(unique_list)
如果要按id比较对象:
根据您想要实现所有可以使用的rich comparison ordering methods的功能,您只需要定义其中一个方法,它将负责其余的方法
^{pr2}$要支持对Python 3中的对象不使用显式键进行排序,必须实现
__lt__
特殊方法:如果您想让其他操作符正常工作,您也必须实现它们的特殊方法,但是对于排序
__lt__
就足够了。在如注释中所述,另一种方法是为
^{pr2}$sorted
内置函数提供显式的键函数:相关问题 更多 >
编程相关推荐