Python:在创建变量以对每个值执行某些操作后,如何在列表中添加值?

时间:2017-03-18 02:57:11

标签: python list python-3.x average difference

我为措辞不佳的标题道歉,但我对Python和编码很新。我假设我的问题很简单,但我还没能找到我想要的帮助。这是我现在的代码:

for i in xList:
    dif == (xList[i+1] - i)

我要做的是获取列表中的所有值,找到每个值之间的差异,然后找出平均差异。请提供任何帮助。谢谢你的时间!

2 个答案:

答案 0 :(得分:0)

平均差异是差异之和除以计数。

count = len(xList) - 1
total_diff = 0
for i in range(count):
    a = xList[i]
    b = xList[i+1]
    total_diff += abs(a - b) # absolute value, so negatives don't cancel positives

print(total_diff / count)

答案 1 :(得分:0)

zip可以轻松浏览列表,查看每对连续的元素:

diff_sum = 0
for a, b in zip(xlist, xlist[1:]):
    diff_sum += abs(b-a)

您甚至可以使用生成器表达式和内置sum

进一步折叠
diff_sum = sum(abs(b-a) for a,b in zip(xlist, xlist[1:]))

现在除以列表的长度减去1:

ave_diff = diff_sum / (len(xlist)-1)

(当然,单个元素列表会给你除以零,所以你要防范它。)