gpt4 book ai didi

python - 根据代数运算的结果对对象字典进行排序

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

这么说吧,我定义了这个类:

class A:
def __init__(self, x, y):
self.x = x
self.y = y

假设属性 x、y 包含整数值,我有一个“A”对象的字典 - 让我们称之为“a_dict”。我想根据 x 和 y 的代数运算结果对这本字典进行排序。我试过这个:

a_dict_sorted = sorted(a_dict.values(), key=100*int(operator.attrgetter('x')) / (float(operator.attrgetter('x')) + float(operator.attrgetter('y')))

显然 operator.attrgetter 返回一个可调用对象,而不是该属性的值。所以上面的代码给出了这个错误:

TypeError: int() argument must be a string or a number, not 'operator.attrgetter'

像这样对字典进行排序是否有任何陷阱?或者我必须先对其进行预处理以创建代数结果,然后再进行相应排序?

最佳答案

你最好使用一些匿名函数,也就是 lambda

a_dict_sorted = sorted(a_dict.values(), key = lambda a: 100*int(a.x/(a.x + a.y)) )

关于python - 根据代数运算的结果对对象字典进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21886531/

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