【发布时间】:2017-10-29 16:36:57
【问题描述】:
在 Python 中有一个包含字典元素的排序列表,长度为 1000,如下所示
[
{'date': '2017-05-20', 'category': 'create', 'data': 23},
{'date':'2017-05-21', 'category': 'use', 'data': 1},
{'date': '2017-05-23', 'category': 'create', 'data': 4},
]
列表的每个元素都包含带有字段的字典
- 日期
- 类别
- 数据
列表按字典元素的日期排序。
问题是基于列表的函数有两种类型
- 日期按列表排序(这就是数据按日期排序的原因)
- 数据类别
因此,我必须多次遍历完整列表才能对单个类别进行操作。
我想出的一个解决方案是维护一个字典,其中键作为类别,值作为排序列表中的索引。
index = {'create': [0, 2], 'use': [1]}
我想知道实现此功能的最佳或 Python 方式是什么?或者如果有任何这样的数据结构。
【问题讨论】:
-
如果大小足够小,索引列表是个不错的方法。如果列表的大小或搜索的复杂性增加,您可能有兴趣将排序列表转换为 SQLite 表并在其上使用 SQL 查询。
-
感谢 Serge,然后我会采用上述方法,直到找到其他更好的方法。
标签: python list sorting dictionary indexing