0

我有以下课程:

class Node(object):
def __init__(self, id):
    self.stat = 1
    self.children = set()
    self.id= = id

有一个包含此类实例的列表

list = [instance_0, instance_1, instance_2]

我希望我的代码返回其self.stat变量中具有最高值的对象

这是怎么做的?

4

1 回答 1

1

首先,我建议不要list用作变量名......让我们mylist改为调用它。

所以你有了:

mylist = [ instance_0, instance_1, instance_2 ]

那么这应该给你stat另一个列表中的变量:

objstats = [ x.stat for x in mylist ]

然后你可以申请max()找最大的,并index()找到它在哪个位置:

maxindex = objstats.index(max(objstats))

然后使用该索引查找您的原始对象:

largest = mylist[maxindex]

你当然可以结合最后两行:

largest = mylist[objstats.index(max(objstats))]

从技术上讲,您可以将整个内容组合成一行,但由于您引用objstats了两次,因此存储它比计算两次更有效。

于 2013-11-13T16:17:55.773 回答