我有一个嵌套的列表,有这种类型的结构:
mylist = [
[
['Bob', 'Male', '2019-12-10 9:00'],
['Sally', 'Female', '2019-12-10 15:00']
],
[
['Jake', 'Male', '2019-12-12 9:00'],
['Ally', 'Female', '2019-12-12 9:30'],
['Jamal', 'Male', '2019-12-12 15:00']
],
[
['Andy', 'Male', '2019-12-13 15:00'],
['Katie', 'Female', '2019-12-13 15:30']
]
]
目前,这个主列表mylist是按日期组织的。所有包含同一天(即2019-12-12、2019-12-13…)的元素都嵌套在一起。 我想更进一步地进行嵌套,并在按日期排序的嵌套组中创建另一个嵌套组。这次,我想按时间安排。我想把所有在9点有标签的人和在15点有标签的人放在一起。 所以,我试图得到这个输出:
newlist = [
[
[
['Bob', 'Male', '2019-12-10 9:00']
],
[
['Sally', 'Female', '2019-12-10 15:00']
]
],
[
[
['Jake', 'Male', '2019-12-12 9:00'],
['Ally', 'Female', '2019-12-12 9:30'],
],
[
['Jamal', 'Male', '2019-12-12 15:00']
]
],
[
[
['Andy', 'Male', '2019-12-13 15:00'],
['Katie', 'Female', '2019-12-13 15:30']
]
]
]
基于这个问题的公认答案,我修改并尝试使用以下代码,但是没有成功。
newdict = defaultdict(list)
for data in mylist:
for datum in data:
_, _, time = datum
_, date_time = time.split(" ")
_, hour_minute = date_time.split(":")
newdict[hour_minute].append(datum)
newlist = list(newdict.values())
print(newlist)
--------------------------------------------------------------------------------------------------------
Output:
[
[
['Bob', 'Male', '2019-12-10 9:00'],
['Sally', 'Female', '2019-12-10 15:00'],
['Jake', 'Male', '2019-12-12 9:00'],
['Ally', 'Female', '2019-12-12 9:30'],
['Jamal', 'Male', '2019-12-12 15:00'],
['Andy', 'Male', '2019-12-13 15:00'],
['Katie', 'Female', '2019-12-13 15:30']
]
]
我也做了很多网上搜索,但没有找到任何解决方案。有谁知道如何做到这一点吗?另外,请记住我对编程是新手,所以请尽量保持答案/解释尽可能简单。谢谢! 问题来源StackOverflow 地址:/questions/59381053/grouping-elements-time-wise-in-a-date-wise-nested-list
如果它们已经排好序,我们可以使用groupby和一个函数来分隔时间来对它们进行分组:
from itertools import groupby
def f(l):
return l[2].split(" ")[1].split(":")[0]
newlist = [[list(g) for _, g in groupby(subl, f)] for subl in mylist]
结果
[
[
[
['Bob', 'Male', '2019-12-10 9:00']
],
[
['Sally', 'Female', '2019-12-10 15:00']
]
],
[
[
['Jake', 'Male', '2019-12-12 9:00'],
['Ally', 'Female', '2019-12-12 9:30']
],
[
['Jamal', 'Male', '2019-12-12 15:00']
]
],
[
[
['Andy', 'Male', '2019-12-13 15:00'],
['Katie', 'Female', '2019-12-13 15:30']
]
]
]
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。