2017-03-18 35 views
0

我爲這個措辭不佳的標題表示歉意,但我對Python和編碼一般都很陌生。我假設我的問題很簡單,但我一直無法找到我期待的幫助。這裏是我現在所擁有的代碼:Python:如何在創建一個變量來對每個值做某事之後在列表中添加值?

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

我所試圖做的就是把所有的值的列表中,找到每個值之間的差額,然後找到的平均差異。請提供任何幫助。感謝您的時間!

回答

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

對於範圍,可以使用變量「計數」,其中設置等於列表的長度減1.如果列表包含值1,3,4,它是否會經過1,3,4,因爲這些是值,或者它會經過0,1,2,因爲3是長度?另外,變量'total_diff'後面的+ =是否意味着您將每個迭代的前一個總差異添加到新的差異中,這反過來會在所有迭代之後給出最終的總差異? – DOM

+0

@PierceForte:你爲什麼不嘗試自己看看? –

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) 

(當然,單元素列表會給你除以零,所以你要警惕這一點。)

+0

OP不知道'=='和'='之間或列表索引和列表元素之間的區別。也許沒有必要把發電機,拉鍊和切片帶入它! –

相關問題