我需要将列表分成两半,这样如果它的长度为奇数,则中间元素将被完全忽略,我有一个用于此目的的函数,但对于我想要做的事情来说,它相当慢。
我的函数(变量被重命名,因为它们脱离上下文没有意义):
def splitList(array):
half = len(array)/2
if len(array)%2==0:
return array[:half], array[half:]
else:
return array[:half], array[half+1:]
如果我的估计正确的话,这个函数必须被调用大约 1700 万次,所以它必须更快。因为我对此很陌生,如果你能解释为什么你的答案运行得更快,那就完美了:)
最后一刻的事情:这是欧拉项目挑战的一小部分,如果你想知道,你应该能够在一分钟内得到答案,这就是为什么它必须这么快。
最佳答案
这很有效,而且看起来是一个简单的方法:
def splitList(array):
n = len(array)
half = int(n/2) # py3
return array[:half], array[n-half:]
关于python - 将列表平均分成两半的最有效方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24105856/