2016-10-06 15 views
1

私はプログラミングに非常に慣れており、私の研究計算にはPythonを使用しようとしています。リストを反復処理するにはどうすればよいですか?

chelDays = [0,1,5,7]の場合 毎回tが1から100までの間、私はリストchelDaysの各メンバーにt-chelDaysが必要です。 t> tchelDaysの場合例えば、私は次のような結果を得るだろう:see image

をここに私が試したものです:

chelDays = [0, 1, 5, 7] 
while t <100: 
    if t > tj: 
     print (t, t-tj) 
    else: 
     print (t, " ") 
    t +=1 

編集:

は、最後に私の解決策を見つけた: タウ=(0、1、 0,def tMinusTau(t、tj): t> tMinusTau(t、Tau [0])、tMinusTau(t、Tau 1)、tMinusTau(t、Tau [2])、tMinusTau(t、Tau [3])は、 ))

+0

'for tj in range(len(chelDays)-1)'ループを使ってみてください。 –

+1

Pythonの反復には、通常、 'for'ループが含まれます。後で、あなたは 'comprehensions'を学びたいかもしれません。 'while'ループはPythonではほとんど使われていませんが、明らかにそれらの場所があります。 –

+3

しかし、真剣に、次回はあなたの質問をgooglingしてみてください。 [公式ドキュメント](https://docs.python.org/2/tutorial/controlflow.html#for-statements)が見つかりました。これは、混乱を避けることができます。また、[公式チュートリアル](https://docs.python.org/3.5/tutorial/introduction.html)を読んでください。これはかなり良いことで、これらの基本的な質問を避けるのに役立ちます。 –

答えて

3

forループは、コレクション内の項目を反復処理するための無限の方法です。 rangeを使用すると、同じ範囲の数値を得ることができます。例:range(1,100)番号は1〜99です(停止番号は非限定的なため)

したがって、t = 1からt = 100その後、あなたは次のことを行うことができtの間隔ごとchelDays内の各項目に対してチェック:

for t in range(1,101): 
    for tj in chelDays: 
     if t > tj: 
      #dostuff 
     else: 
      #dostuff 

編集:あなたはchelDaysやないすべての項目をチェックしたい場合は後知恵では、それは不明でした。あなたは、すべての日の合計価値を意味するかもしれません。そのような場合、あなたはsum([1,2,3]) == 6例えばsum(chelDays)で値を合計することができますまたはあなたがそのリスト内の項目の数を望んでいた場合、あなたはlen(chelDays)例えばlen([504,123,234]) == 3

最後に、あなたが自分自身と他人のために行うことができます偉大なことをするだろうあなたのコードを読んで、あなたの変数名を正確に記述させてください。 x,y,varなどのような変数名は通常適切ではありません。もちろん、xytなどが完全に細かい数式のような文脈があります。

+0

私は最終的に私の問題の解決策を見つけました。 – DPdl

関連する問題