繁体   English   中英

Python-在实例列表中找到大于0的最小值

[英]Python - find minimum value greater than 0 in a list of instances

我有一个名为process_listProcess类的)实例列表。 我正在努力找到属性l_time大于0。这是我的类的样子:

class Process:

    def __init__(self, id, a_time, p_time):
        self.id = id
        self.a_time = a_time
        self.p_time = p_time
        self.l_time = p_time
        self.w_time = 0
        self.ta_time = 0
        self.is_available = False

我尝试了类似的东西:

current_process = min(i for i in process_list if i.l_time > 0)

它给出一个错误:

TypeError:“ Process”和“ Process”的实例之间不支持“ <”

我是否必须以某种方式编写__gt__函数,还是可以使用lambda来实现?

使用min的关键参数:

class Process:

    def __init__(self, id, a_time, p_time):
        self.id = id
        self.a_time = a_time
        self.p_time = p_time
        self.l_time = p_time
        self.w_time = 0
        self.ta_time = 0
        self.is_available = False

process_list = [Process(1, 10, 10), Process(1, 5, 5), Process(1, -5, -5)]
result = min((p for p in process_list if p.l_time > 0), key= lambda x: x.l_time)

print(result.l_time)

输出量

5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM