gpt4 book ai didi

python - 将对象列表与自定义键进行比较

转载 作者:太空狗 更新时间:2023-10-30 01:37:50 26 4
gpt4 key购买 nike

我根据它们的一个属性对一些对象进行排序,使用类似这样的方法:

sorted_list = sorted(unsorted_list, key=lambda x: x.my_attr)

有什么方法可以对这些对象的列表进行排序,就像 Python 可以对整数列表的列表进行排序一样?我可以为这些对象重载 __cmp__(self, other) ,但这会给外部包带来困难。嵌套也可能变得任意深,所以我不认为我可以只使用列表理解。

我想知道是否有什么东西可以生成 my_attr 的列表并将其链接到相应的对象列表。我想不出一个好的方法来立即做到这一点。

最佳答案

您可以对您的数据类型实现比较函数,然后依赖 Python 的排序函数。

查看类似的问题和答案:Python: Sort custom class without use of `key` argument?

简而言之,您可以使用total_ordering 元类并实现__eq____lt__ 函数。

在您的特定情况下,您可以像这样实现 __eq__:

def __eq__(self, other):
return self.my_attr == other.my_attr

__lt__ 也是如此。

关于python - 将对象列表与自定义键进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31751232/

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