1

Python には C スタイルの for ループがないことがわかりました。

  for (var;condition:increment)

単純な for ループの場合、使用できます

  for i in xrange(number):

生産する

  for (i;i<number;i++)

しかし、私が持っている場合

  for (i = 2; an_array[i - 2] < number; i++)

どうすればPythonで生成できますか?

ありがとう

4

2 に答える 2

4

あなたは出来る

  1. その配列を繰り返し処理し、次のitertoolsような のきちんとした関数の 1 つを使用しtakewhile()ます。

    for item in takewhile(lambda i: i < number, array[2:]):
        # do stuff
    

    これは、その内容が特定の条件を満たすまで (またはその間)、指定された iterable (ここでは配列) から値を取得します。

    ここでitemは、それぞれの配列エントリの内容です。インデックスが本当に必要な場合は、次のものと組み合わせることができますenumerate()

    for index, item in enumerate(takewhile(lambda i: i < number, array[2:])):
        # do stuff
    

    ただし、このインデックスは通過した項目をカウントするため、2 ずれています。最初に、配列の右側の部分にアクセスするためにarray[2:]追加する必要があります。2

  2. while ループを使用します。

    i = 2
    while (array[i-2] < number):
        # do stuff
        i += 1
    
于 2013-07-17T07:03:30.020 に答える
1

以下を使用できます。

for i in xrange(2, number):
    # Whatever

xrange が 2 つのパラメーターを取る場合、最初の値から最後の値までの範囲が作成されます。最初の値は含まれますが、最後の値は含まれないことに注意してください。

編集:配列を使用している場合は、Tim Pietzcker の方法が適しています。便利な対応物を提供するために、このメソッドを提供しました。

于 2013-07-17T06:58:58.283 に答える