2017-03-18 7 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のいずれかになりますか、3は0,1,2になります長さ?また、変数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は、 '=='と '='の間、またはリストインデックスとリスト要素の間の違いを認識しません。ジェネレータ、ジップ、およびスライスする必要はないかもしれません。 –

関連する問題