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)
答
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不知道'=='和'='之间或列表索引和列表元素之间的区别。也许没有必要把发电机,拉链和切片带入它! –
对于范围,可以使用变量“计数”,其中设置等于列表的长度减1.如果列表包含值1,3,4,它是否会经过1,3,4,因为这些是值,或者它会经过0,1,2,因为3是长度?另外,变量'total_diff'后面的+ =是否意味着您将每个迭代的前一个总差异添加到新的差异中,这反过来会在所有迭代之后给出最终的总差异? – DOM
@PierceForte:你为什么不尝试自己看看? –