python - 在 Python 中最有效地迭代大量字典列表
问题描述
我已经看到了一些类似问题的答案,但我不确定它们是否是解决我的问题的最佳方法。
我有一个非常大的表(100,000+ 行,20+ 列)作为字典列表处理。我需要使用比较对此列表进行部分重复数据删除。我在下面简化了我现在正在做的事情的一个例子。
table = [
{ "serial": "111", "time": 1000, "name": jon },
{ "serial": "222", "time": 0900, "name": sal },
{ "serial": "333", "time": 1100, "name": tim },
{ "serial": "444", "time": 1300, "name": ron },
{ "serial": "111", "time": 1300, "name": pam }
]
for row in table:
for row2 in table:
if row != row2:
if row['serial'] == row2['serial']:
if row['time'] > row2['time']:
action
这种方法确实有效(显然简化了,只是为那部分写了“动作”),但我的问题是是否有更有效的方法可以到达我想要的“行”,而不必对整个表进行两次迭代。我没有办法必然预测匹配行在列表中的位置,但在这种情况下,它们将列在相同的“序列”下。
我对 Python 比较陌生,效率是这里的目标。到目前为止,由于正在迭代的行数,它需要很长时间才能完成,我相信有一种更有效的方法可以做到这一点,我只是不知道从哪里开始。
谢谢你的帮助!
解决方案
对于这么多数据,字典列表总是会相当慢。相反,请查看Pandas是否适合您的用例——它已经针对此类工作进行了优化。
推荐阅读
- javascript - 动态地将一个组件附加到另一个组件中
- dynamic - 构建动态 lambda 表达式
- sql - SQL 根据其他获取的行替换 NULL
- sql - 如何在 SQL Server 中以两种不同的方式通过短路进行排名?
- asp.net-mvc - asp.net 从服务器 mvc 下载控制器客户端
- php - AMP Instagram、Twitter 嵌入需要 PHP preg_replace
- json - 将对象转换为json时如何排除空值
- ios - 在 iphone x 模拟器上滚动而不是其他设备上的滚动视图
- java - 不显示 div 内容
- datatables - 同一页面中多个数据表循环内的日期范围