Python 枚举对象列表并返回索引或对象

Python 枚举对象列表并返回索引或对象,python,enumerate,Python,Enumerate,我有一个物品清单。 列表中的一个属性是m_expiry,它存储为字符串。 我试图找到最短的日期差(现在和该属性值之间),并获取列表的索引或对象本身 当前expiryValue正在返回日期差,而不是索引/对象。(我希望它返回idx=0或对象[0] expiryValue = min((datetime.strptime(item.m_expiry,'%Y%m%d') -datetime.now()) for item in object) 15天,10:12:00.077586 idx

我有一个物品清单。 列表中的一个属性是m_expiry,它存储为字符串。 我试图找到最短的日期差(现在和该属性值之间),并获取列表的索引或对象本身

当前expiryValue正在返回日期差,而不是索引/对象。(我希望它返回idx=0或对象[0]

expiryValue = min((datetime.strptime(item.m_expiry,'%Y%m%d') -datetime.now()) for item in object)
15天,10:12:00.077586

    idx    id     x   y    z    a     m_expiry

    [0] 215465490 ES ESH7 FUT GLOBEX  20170317
    [1] 225652200 ES ESM7 FUT GLOBEX  20170616
    [2] 236950077 ES ESU7 FUT GLOBEX  20170915
    [3] 247950613 ES ESZ7 FUT GLOBEX  20171215
    [4] 258973438 ES ESH8 FUT GLOBEX  20180316

很接近。这里的诀窍是最小化项目,键入它们的时间增量,而不是最小化时间增量本身

在项目上取最小值,并使用
min
key
关键字参数

min(items, key=...)
您将定义的键函数应该接受一个项并返回该项的timedelta。您还应该注意设置timedelta的绝对值,这在示例代码中没有实现


这将返回项目本身,该项目上已经有索引,您可以在
项目中访问。idx

您可以改进您的问题吗?更好地阐述它;-)太棒了,谢谢!包括:从操作员导入属性器