Python 枚举对象列表并返回索引或对象
我有一个物品清单。 列表中的一个属性是m_expiry,它存储为字符串。 我试图找到最短的日期差(现在和该属性值之间),并获取列表的索引或对象本身 当前expiryValue正在返回日期差,而不是索引/对象。(我希望它返回idx=0或对象[0]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
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
您可以改进您的问题吗?更好地阐述它;-)太棒了,谢谢!包括:从操作员导入属性器