2016-06-18 25 views
0

私はPythonを学んできましたが、私はJavaのバックグラウンドから来ており、JavaではJavaのループからループごとにイテレータが増減する値を設定できます。たとえば、イテレータが2回ずつ増加するように、for(int i = 0; i < 10; i = i + 2)と言うことができます。ループイテレータを1ずつ増やす

私は今までにPythonチュートリアルで見たことから、forループは不変で、各整数を最初の値から終わりの値まで繰り返し、毎回1ずつ増加します。 Python forループを操作してイテレータの独自の増減値を設定する方法はありますか?

答えて

3

あなたはPythonで同じことを達成するために、以下を使用することができます:あなたはANを反復するforループを使用する場合

>>> range(1, 10, 2) 
[1, 3, 5, 7, 9] 

See documentation on range

あなたのコードは、したがって、

for i in range(0, 10, 2): 
    # do_stuff() 
1

になりますPythonでインデックスを作成するには、通常rangeオブジェクトを作成します。

for i in range(10): 
    print(i) 
# 0, 1, ..., 9 

rangeには、start、stop、stepの3つの引数を取るコンストラクタがあります。

for i in range(0, 10, 2): 
    print(i) 
# 0, 2, ..., 8 

通常、インデックスではなくオブジェクト内のアイテムを繰り返し処理するだけです。

lst = [0, 1, 2, 3] 
for element in lst: 
    print(element) 
# 0, 1, 2, 3 

ただし、オブジェクトがスライシングをサポートしている場合(リストのように)、他のすべてのメンバーを簡単に取得できます。

lst = [0, 1, 2, 3] 
for element in lst[::2]: 
    print(element) 
# 0, 2 

この構文の詳細については、Googleの "list slicing in Python"を参照してください。

関連する問題