Python将列表拆分为一个元素 - python

我正在使用Python分析数据,并且有N个2d数据数组的列表。我想一一查看这些元素,并将它们与其他N-1个元素的平均值进行比较。

Python中是否有内置方法可循环遍历列表,一方面具有单个元素,另一方面具有列表的其余部分。

我知道如何通过遍历整数并连接左右部分来做到``丑陋'':

for i in xrange(N):
    my_element = my_list[i]
    my_sublist = my_list[:i] + my_list[i+1:]

但是有Pythonista可以做到吗?

python大神给出的解决方案

我们可以计算所有元素的总和。然后,我们可以轻松地为每个元素找到其余元素的总和。我们从总和中减去当前元素的值,然后找到平均值,除以N - 1:

s = sum(my_list)
for my_element in my_list:
    avg_of_others = (s - my_element) / float(len(my_list) - 1)
    ...

编辑:

这是一个如何将其扩展到numpy的示例:

import numpy as np
l = np.array([(1, 2), (1, 3)])
m = np.array([(3, 1), (2, 4)])
my_list = [l, m]

s = sum(my_list)
for my_element in my_list:
    avg_of_others = (s - my_element) / float(len(my_list) - 1)