我有以下课程:
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
变量中具有最高值的对象
这是怎么做的?
我有以下课程:
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
变量中具有最高值的对象
这是怎么做的?
首先,我建议不要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
了两次,因此存储它比计算两次更有效。