Skip to main content
 首页 » 编程设计

Python:获取每个公司的最新日期

2025年05月04日13artech

我有一个元组列表,其中包含日期和公司名称。一家公司可以列出多个日期的信息:

 [(Company A, datetime.date(1980,1,30)), 
  (Company A, datetime.date(1990,1,30)), 
  (Company B, datetime.date(1990,1,30)), 
  (Company B, datetime.date(2000,1,30))] 

我想做的是有一个列表,其中只包含每个公司的最新日期,即结果:

 [(Company A, datetime.date(1990,1,30)), 
  (Company B, datetime.date(2000,1,30))] 

有什么想法吗?

请您参考如下方法:

如何使用 itertools 中的 groupby,然后取最大值:

import datetime 
x = [('Company A', datetime.date(1980,1,30)), 
  ('Company A', datetime.date(1990,1,30)), 
  ('Company B', datetime.date(1990,1,30)), 
  ('Company B', datetime.date(2000,1,30))] 
 
import itertools 
out = [] 
for k,g in itertools.groupby(sorted(x, key = lambda y: y[0]), lambda y: y[0]): 
    out.append(max(g, key = lambda y:y[1])) 
 
out 
[('Company A', datetime.date(1990, 1, 30)), 
 ('Company B', datetime.date(2000, 1, 30))]