0

何かをループして、ループが進行するにつれてさまざまな特性のカウンターを保持する必要があるとしましょう。ループの前に、これらのさまざまなカウンター変数を初期値で作成できました。

count1 = 0
count2 = 0

for index in range(0, 10):
    count1 += 1
    count2 += 2

print count1, count2

または、変数が存在しない場合に変数を作成するループ内の条件ステートメントを使用して、最初に実際に使用されたときにカウンター変数を作成し、変数をインクリメントすることもできます。

for index in range(0, 10):
    if "count1" not in locals():
        count1 = 0
    if "count2" not in locals():
        count2 = 0        
    count1 += 1
    count2 += 2

print count1, count2

これを行うためのよりコンパクトまたは効率的な方法はありますか?

4

1 に答える 1

2

気にしないでください。変数が必要な場合は、定義します。それは何らかの形で起こるでしょう。


を使用defaultdictして、辞書のさまざまなキーをインクリメントすることができます。キーが初期化されます。これは、「可変変数」を作成するよりも望ましい方法です。

from collections import defaultdict
counts = defaultdict(int)
counts[1] += 1
counts[2] += 2

繰り返しながら何かをカウントしたい場合は、 を使用しますenumerate

for i, item in enumerate(data):
    print(i)

両方のカウンターの例は、この方法で単一のカウントから簡単に導き出すことができます。(データの長さから導き出すこともできます)。

于 2015-10-07T15:51:25.887 に答える