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

标签 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 万次,所以它必须更快。因为我对此很陌生,如果你能解释为什么你的答案运行得更快,那就完美了:)

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

最佳答案

这很有效,而且看起来是一个简单的方法:

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/

相关文章:

python - 使用正则表达式使用反斜杠分割字符串

python - Tkinter 常规语句不起作用

python - NumPy数组,保存SoundDevice的.wav音频数据

python - 从特定值之后的列表中删除所有元素

python - 从 For 循环 Python 中的迭代总数中减去字典值

java - 数组的好处

python - 函数 'cv::CascadeClassifier::detectMultiScale' 中的错误 :(-215:Assertion failed) ! 空()

Python 不捕获 try/except 错误

python 3.x : Subtract Same Index from Sequential Lines

java - Android ListView 删除所有内容后仍然包含一项