|
|
1
2
为了完整性,这里有一个解决方案
请注意,上面假设每个组中至少有一个项目,否则它将给出来自脚本的不同结果,即:
而不是
这是一个固定的字典解决方案。在某种程度上,字典查找时间将开始占主导地位,但也许它足够快,您喜欢这样。
|
|
|
2
2
你的代码是O(N 二 )这里有一个O(N)解决方案:
|
|
|
3
2
一种方法(不承诺速度):
将元组列表分为两个列表:
由于第一个列表是经过排序的,所以您可以一直对它进行迭代,直到到达超出范围的元素为止。然后,您知道开始和结束元素的索引,这样您就可以从第二个数组中分割出字符串。继续,直到你有了所有的时间间隔。 我不确定传统的python列表有多高效,但是如果您的数据集足够大,您可以尝试使用一个numpy数组,它将很快切片。 |
|
|
4
1
根据你的代码,我假设我之前的评论是正确的。这里的问题似乎是性能是O(n^2)-您重复列表理解(它迭代所有项)多次。 我说,使用一个简单的for循环。如果当前项目与上一个项目属于同一组,请将其添加到现有内部列表[[“A”]、[“B”]->[“A”]、[“B”、“C”]。如果没有,请将其添加到新的内部列表中,或者首先添加空的填充列表。 |
|
|
5
1
展开AM的答案,使用默认的dict,floor将键按间隔进行划分,以正确地将它们分开。
|
|
|
6
1
下面是一个使用xrange的步骤行为的懒惰方法:
|
|
|
7
0
使用迭代器进行延迟计算怎么样? 这应等同于您的初始解决方案:
|