gpt4 book ai didi

python - 如何在 Python 中制作可排序的数据类型?

转载 作者:太空狗 更新时间:2023-10-29 20:52:53 25 4
gpt4 key购买 nike

我有一个代表一些字段的类。当对此类的实例列表进行排序时,我希望它们按特定顺序排序(从每个实例中获取特定的键)。我可以只执行 list.sort(key=Classname.sortKey) 并定义一个 sortKey 方法,但我宁愿只执行 list.sort() 并让它解决。我想我可以通过覆盖 __cmp__ 来做到这一点。但是,当我与不是我的数据类型的东西进行比较时,我该怎么办?我想像...

def __cmp__(self, o):
if isinstance(o, MyClass):
return cmp(self.sortKey(), o.sortKey())
return object.__cmp__(self, o) ##**wrong

但这反而有效。我不在乎他们在异构列表中采用什么顺序。我只会返回 0 但是像 MyClass(...) == x 这样的东西总是正确的,对于任何 x 不是一个实例MyClass.

最佳答案

查看 http://wiki.python.org/moin/HowTo/Sorting/

您想覆盖类中的 __lt__ 以使内置的 sort 函数按照您描述的方式工作。

关于python - 如何在 Python 中制作可排序的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4630341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com