2016-06-18 201 views
0

我一直在學習Python,但是我來自Java和Java的背景,您可以設置循環中每次運行時迭代器增加或減少的值。例如,您可以說for(int i = 0; i < 10; i = i + 2),以便迭代器每次增加兩次。For循環 - 迭代器增加1

從我目前在Python教程中看到的,for循環是不變的,並且迭代每個整數從一個開始值到一個結束值,每次增加一個。有沒有辦法操縱Python for循環來爲迭代器設置你自己的增加/減少值?

回答

3

您可以使用以下方法來達到同樣在python:

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

See documentation on range

您的代碼將因此

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

當您使用for循環迭代某Python中的索引,通常你會構造一個range對象。

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

range有一個構造函數,它有三個參數:start,stop和step。

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

但通常你只是遍歷對象中的項目而不是索引。但是,如果你的對象支持切片(如列表所做的那樣),很容易得到其他所有成員。

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

谷歌「列表切片在Python」如果你想在這個語法的更多信息。