我有一个每天特定时间的潮汐信息列表。有点像这样:
tideData = [
['Thursday 4 January',11.58,0.38],
['Thursday 4 January',16.95,0.73],
['Friday 5 January',6.48,0.83],
['Friday 5 January',12.42,0.33],
['Saturday 6 January',0.5,0.02],
['Saturday 6 January',7.18,0.85],
...
['Friday 2 February',23.52,0.04]
]
我想将此列表拆分为包含相同日期的子列表。在上述情况下,列表将变为:
tideData = [
[['Thursday 4 January',11.58,0.38],
['Thursday 4 January',16.95,0.73]],
[['Friday 5 January',6.48,0.83],
['Friday 5 January',12.42,0.33],
['Friday 5 January',17.92,0.75]],
[['Saturday 6 January',0.5,0.02],
['Saturday 6 January',7.18,0.85]],
...
['Friday 2 February',23.52,0.04]]
]
现在,如果每次约会的次数相等,这就不是问题了。然而,日期有时出现两次,有时出现三次。因此,我希望能够根据重复日期将它们分类为子列表。我该怎么办?你知道吗
我想您应该使用
groupby
包中的itertools
如果未对数据进行排序,则可以使用:
在使用以下工具之前:
你可以用
collections.defaultdict
来表示一个O(n)解。你知道吗在Python3.7中,您将获得额外的好处,即值的顺序将与输入中的顺序相匹配。这在python3.6中可以工作,但被认为是一个实现细节。你知道吗
结果:
对于那些对O(n)和O(n logn)解决方案之间的性能差异感兴趣的人:
这里有一个简单的方法,没有任何导入:
输出:
相关问题 更多 >
编程相关推荐