我有一张单子,我想知道里面所有数字之间的差别。从算法上讲,我似乎应该从一个列表中取每一项相减的绝对值,然后求减法之和的平均值。不要担心绝对值部分。那只和我的申请有关。
例如:
list_a = [1,2,3,4]
list_a0 = (abs(1-2) + abs(1-3) + abs(1-4))/3 = 1+2+3 = 2
list_a1 = (abs(2-1) + abs(2-3) + abs(2-4))/3 = 1+1+2 = 1.33
list_a2 = (abs(3-1) + abs(3-2) + abs(3-4))/3 = 2+1+1 = 1.33
list_a3 = (abs(4-1) + abs(4-2) + abs(4-3))/3 = 3+2+1 = 2
avg = (lista0 + lista1 + lista2 + lista3)/4 = 1.67
我对python比较新。有人能给我一个提示,告诉你如何循环使用list_a
来实现这一点吗?在
考虑使用numpy包,它是超高效和rubust的。 以下是示例:
耗时9.489059448242188e-05秒,即0.00009秒
从您的示例中,您似乎正在尝试循环长度为2的列表的所有排列。幸运的是,itertools有一个专门的函数:
如果您不想使用itertools,我建议您使用for循环,而不是尝试将其压缩到嵌套列表理解中:
^{pr2}$相关问题 更多 >
编程相关推荐