Python:如何在创建一个变量来对每个值做某事之后在列表中添加值?

问题描述:

我为这个措辞不佳的标题表示歉意,但我对Python和编码一般都很陌生。我假设我的问题很简单,但我一直无法找到我期待的帮助。这里是我现在所拥有的代码:Python:如何在创建一个变量来对每个值做某事之后在列表中添加值?

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

我所试图做的就是把所有的值的列表中,找到每个值之间的差额,然后找到的平均差异。请提供任何帮助。感谢您的时间!

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

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) 
+0

对于范围,可以使用变量“计数”,其中设置等于列表的长度减1.如果列表包含值1,3,4,它是否会经过1,3,4,因为这些是值,或者它会经过0,1,2,因为3是长度?另外,变量'total_diff'后面的+ =是否意味着您将每个迭代的前一个总差异添加到新的差异中,这反过来会在所有迭代之后给出最终的总差异? – DOM

+0

@PierceForte:你为什么不尝试自己看看? –

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) 

(当然,单元素列表会给你除以零,所以你要警惕这一点。)

+0

OP不知道'=='和'='之间或列表索引和列表元素之间的区别。也许没有必要把发电机,拉链和切片带入它! –