Python3在同一个日期但不同的时间中多个条目时,在日期/时间中获得唯一的结果基

2024-06-11 01:38:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,我一直在寻找解决这个问题的方法 我确信解决办法很简单,但我还没想清楚。 如果从打印出来,让我们说:

for x in data:
    print('x')

('Rodriguez, Cesar', '000500', '2018-05-15 8:09:12')
('Rodriguez, Cesar', '000500', '2018-05-15 12:09:12')
('Rodriguez, Cesar', '000500', '2018-05-15 12:09:12')
('Gura, Simon', '000501', '2018-05-15 09:09:12')

我如何才能得到一个结果,每个名称和每个代码和最新的日期。 所以我的结果应该是这样的:

('Rodriguez, Cesar', '000500', '2018-05-15 12:09:12')
('Gura, Simon', '000501', '2018-05-15 09:09:12')

但我不在乎答案是不是元组。可能是一张单子或者别的什么。 我唯一需要的就是按名称、ID码和最新条目筛选。 谢谢大家的帮助 最好的


Tags: 方法答案代码in名称fordata元组
1条回答
网友
1楼 · 发布于 2024-06-11 01:38:04

可以使用dict和循环,如下所示:

latest = {}
for name, code, timestamp in data:
    key = (name, code)
    if key not in latest or latest[key] > timestamp:
        latest[key] = timestamp

latest中的结果将是:

{('Gura, Simon', '000501'): '2018-05-15 09:09:12',
 ('Rodriguez, Cesar', '000500'): '2018-05-15 12:09:12'}

注意:这使用字符串比较来比较时间戳。如果您的数据确实具有时间格式,但没有前导零,如“8:09:12”,那么您需要使用datetime.strptimedateutil.parser正确解析它

相关问题 更多 >