gpt4 book ai didi

python - 对象属性的最大函数

转载 作者:太空宇宙 更新时间:2023-11-04 08:09:29 25 4
gpt4 key购买 nike

我想知道,在关于特定属性的对象列表上使用 max 的最 pythonic 方式可能是什么。假设有这个类:

class Foo():
def __init__(self, value):
self.value = value

现在有一个 Foo 的列表:

foos = [Foo(2), Foo(3), Foo(1)]

我想要这个列表的最大值

我可以在列表中使用 max:

max_value = max([foo.value for foo in foos])

这总是首先构建一个列表(可能会降低巨大列表的性能),所以我想到了使用 key 参数:

max_value = max(foos, key=lambda foo: foo.value).value

这对我来说有点难看,因为我没有得到属性,而是得到了对象。

我还可以在 Foo 中定义 __eq____le__ 函数,但这会限制 max 的使用> 对于一个特定的值,我不能将 max 用于多个属性。

有没有另一种方法,以一种漂亮的 pythonic 方式获得最大值?

最佳答案

generator expression 稍微好一点:

max_value = max(foo.value for foo in foos)
# instead of:
# max_value = max([foo.value for foo in foos])

这是很多 Pythonic,不确定它是否可以比这更好。

关于python - 对象属性的最大函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25325151/

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