python - 如何在字典中找到特定值的最新条目?
问题描述
我有一个字典列表,基本上遵循这样的结构:
elements = [{'id':1, 'date':1}, {'id':1, 'date':5}, {'id':2, 'date': 6}]
我想编写一个函数id
,根据date
值仅保留每个副本的最新 dict :
[{'id':1, 'date':5}, {'id':2, 'date': 6}]
有没有一种有效的方法来做到这一点?到目前为止,我总是以嵌套的 for 循环和条件结束,我确信有一个 pythonic 解决方案......
解决方案
您不需要嵌套循环。这似乎相当简单:
elements = [{'id':1, 'date':1}, {'id':1, 'date':5}, {'id':2, 'date': 6}]
latest = {}
for ele in elements:
if ele['id'] not in latest or ele['date'] > latest[ele['id']]['date']:
latest[ele['id']] = ele
print(list(latest.values()))
这将输出:
[{'id': 1, 'date': 5}, {'id': 2, 'date': 6}]
推荐阅读
- python - 如何在 Visual Studio 中禁用 pydev 调试器?
- regex - 使用 ANT 在下划线之前分隔字符串值的正则表达式
- data-binding - Kotlin CustomView 2 路数据绑定
- reactjs - 未定义不是对象 this.props.navigation - 反应原生
- javascript - 闪亮:insertUI 之前使用 removeUI 删除了 id
- javascript - 当我在最后一张幻灯片上单击下一张/上一张时自动播放幻灯片空白幻灯片
- r - 无法解决此矩阵
- python - 在 Django 表单中获取用户名
- java - Optaplanner - Drools 累积函数 reverseSupport 异常
- javascript - 如何安全地覆盖 JavaScript