我有一个具有这种结构的嵌套列表:
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']
]
]
Run Code Online (Sandbox Code Playgroud)
目前,这个主列表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', …Run Code Online (Sandbox Code Playgroud) 我有一个结构与此类似的嵌套列表,但它显然要长得多:
mylist = [ ["Bob", "12-01 2:30"], ["Sal", "12-01 5:23"], ["Jill", "12-02 1:28"] ]
Run Code Online (Sandbox Code Playgroud)
我的目标是创建另一个嵌套列表,将具有相同日期的所有元素组合在一起。因此,需要以下输出:
newlist = [ [["Bob", "12-01 2:30"], ["Sal", "12-01 5:23"]], [["Jill", "12-02 1:28"]] ]
Run Code Online (Sandbox Code Playgroud)
上面,日期为 12-01 的所有项目,无论时间如何,都组合在一起,12-02 的所有元素都组合在一起。
在过去的 1 小时里,我一直在真诚地研究如何做到这一点,但找不到任何东西。此外,我是编程的初学者,所以我不够熟练,无法尝试创建自己的解决方案。所以,请不要认为我没有尝试做研究或自己尝试尝试这个问题。我将在下面添加一些链接作为我的研究示例:
我有一个具有以下格式的列表:
mylist = ["Joe, 100%", "Joe, 80%", "Joe, 90%", "Sally, 95%", "Sally, 80%", "Jimmy, 90%", ...]
Run Code Online (Sandbox Code Playgroud)
我想要做的是,首先计算每个名字出现的次数。如果某个名称出现 2 次或更多次,请附加该名称以及平均百分比。所以,我试图获得以下输出:
newlist = ["Joe, 90%", "Sally, 87.5%"]
Run Code Online (Sandbox Code Playgroud)
为了尝试这个,我mylist.split(", ")只得到了名字,并用来Counter()查找名字出现的次数。然后,如果名称出现 2 次或更多次,我使用一个简单的if >= 2语句将名称附加到后面newlist。
然而,尽管尝试了许多不同的事情,但我无法弄清楚如何在最终列表中使用名称获取百分比。我也不确定如何在谷歌上表达我的问题,所以我找不到任何帮助。有谁知道如何做到这一点?如果此问题重复,请告诉我(并提供链接以便我学习),我可以删除此问题。谢谢!