将列表均匀分成两半的最有效方法是什么

时间:2014-06-08 11:52:35

标签: python list

我需要将一个列表分成两半,如果它有一个奇数长度,中间元素被完全忽略,我有一个函数,但是我正在尝试做的很慢。

我的函数(变量重命名,因为它们在上下文之外没有任何意义):

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万次,所以它必须更快。因为我对此不熟悉,如果你能解释为什么你的答案更快,那就更完美了:)

最后一分钟的事情:如果你想知道,你应该能够在一分钟之内得到一个答案就是为什么它必须如此之快。这是项目欧拉挑战的一小部分。

1 个答案:

答案 0 :(得分:2)

这可行,看起来很简单:

def splitList(array):
    n = len(array)
    half = int(n/2) # py3
    array[:half], array[n-half:]