首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >遍历列表并比较列表中的切分

遍历列表并比较列表中的切分
EN

Stack Overflow用户
提问于 2014-05-13 08:16:55
回答 1查看 43关注 0票数 0

我有一个这样的清单:

代码语言:javascript
运行
复制
[(datetime.date(2014, 4, 15), {'first_name': 'Mike', 'last_name': 'Jackson'}),  
(datetime.date(2014, 4, 15), {'first_name': 'Hannah', 'last_name': 'Jackson'}),
(datetime.date(2014, 4, 16), {'first_name': 'Tom', 'last_name': 'Jackson'},  
(datetime.date(2014, 4, 16), {'first_name': 'Macy', 'last_name': 'Jackson'})]

我想在这个列表中迭代,这样它就可以将这些数据进行比较。然后,我想要做自己的名单,有相同的日期。我该怎么做?

其结果应该是:

列表n

代码语言:javascript
运行
复制
[(datetime.date(2014, 4, 15), {'first_name': 'Mike', 'last_name': 'Jackson'}),  
(datetime.date(2014, 4, 15), {'first_name': 'Hannah', 'last_name': 'Jackson'})]

列表n+1

代码语言:javascript
运行
复制
[(datetime.date(2014, 4, 16), {'first_name': 'Tom', 'last_name': 'Jackson'},  
(datetime.date(2014, 4, 16), {'first_name': 'Macy', 'last_name': 'Jackson'})]
EN

回答 1

Stack Overflow用户

发布于 2014-05-13 08:36:49

这个任务有一个名为groupby的工具。但是它使用迭代器,并且取决于这样一个事实,即要分组在一起的项已经按顺序排列,因此您可能需要在应用输入之前对输入进行排序,当然,这取决于是否是“排序”。

代码语言:javascript
运行
复制
from itertools import groupby

v = [ (datetime.date(2014, 4, 15), {'first_name': 'Mike', 'last_name': 'Jackson'}),
      (datetime.date(2014, 4, 15), {'first_name': 'Hannah', 'last_name': 'Jackson'}),
      (datetime.date(2014, 4, 16), {'first_name': 'Tom', 'last_name': 'Jackson'}),
      (datetime.date(2014, 4, 16), {'first_name': 'Macy', 'last_name': 'Jackson'}) ]
v.sort()   # to ensure that all equal datetimes are together in the list
result = [ list(i) for x, i in itertools.groupby(v, lambda a: a[0]) ]

然后,result将是:

代码语言:javascript
运行
复制
[ [ (datetime.date(2014, 4, 15), {'first_name': 'Mike', 'last_name': 'Jackson'}),
    (datetime.date(2014, 4, 15), {'first_name': 'Hannah', 'last_name': 'Jackson'}) ],
  [ (datetime.date(2014, 4, 16), {'first_name': 'Tom', 'last_name': 'Jackson'}),
    (datetime.date(2014, 4, 16), {'first_name': 'Macy', 'last_name': 'Jackson'}) ] ]

这就是你想要的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23626018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档