我有一个Process名为(类)的实例列表process_list.我正在努力寻找属性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
Run Code Online (Sandbox Code Playgroud)
我尝试过类似的东西:
current_process = min(i for i in process_list if i.l_time > 0)
Run Code Online (Sandbox Code Playgroud)
它给出了一个错误:
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)
Run Code Online (Sandbox Code Playgroud)
产量
5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |