我需要将一个列表分成两半,如果它有一个奇数长度,中间元素被完全忽略,我有一个函数,但是我正在尝试做的很慢。
我的函数(变量重命名,因为它们在上下文之外没有任何意义):
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万次,所以它必须更快。因为我对此不熟悉,如果你能解释为什么你的答案更快,那就更完美了:)
最后一分钟的事情:如果你想知道,你应该能够在一分钟之内得到一个答案就是为什么它必须如此之快。这是项目欧拉挑战的一小部分。
答案 0 :(得分:2)
这可行,看起来很简单:
def splitList(array):
n = len(array)
half = int(n/2) # py3
array[:half], array[n-half:]