【发布时间】:2013-12-30 17:01:44
【问题描述】:
我在 Python 中有这么大的数据结构——基本上是一个字典列表。这些字典中的每一个都可能包含一些重复出现的属性和时间戳。我正在尝试查看这些属性的值是否相同,如果是,则仅获取具有最新时间戳的字典。例如:
[{'data': '3.50.1', 'date_time': '20131213-100308', 'version': '8.0.22'},
{'data': '3.50.1', 'date_time': '20131230-100308', 'version': '8.0.22'},
{'data': '3.47.0', 'date_time': '20131213-150410', 'version': '8.0.21'}]
字典包含更多字段,但假设这些是可能重复出现的常见字段。在这种情况下,上面的列表应该被过滤到只有两个字典——第二个和第三个。有什么聪明的方法可以在不进行双 for 循环的情况下实现这一点?
我尝试使用 lambda 函数并使用 Python 的过滤器,但无济于事。
【问题讨论】:
-
列表是否按重复值总是在相邻项中的意义排序?
-
每个
dict都将拥有相同的密钥,还是有些拥有更多、更少或不同的密钥?另外,您说您想要相同“数据”的最新,但这里的第一个dict有更早的日期? -
列夫,不一定。它们按特定顺序插入,但我不确定 JSON 是如何决定存储它的。
-
tjiko,每个字典都有相同的键。对不起,我的意思是第二个字典而不是第一个。我纠正了错字。
标签: python list dictionary lambda