是否可以在循環內增加for循環內的python 3?在循環內增加for循環
例如:
for i in range(0, len(foo_list)):
if foo_list[i] < bar
i += 4
當循環計數器i
得到由4如果條件成立的增加,否則它只是一個遞增(或任何步進值是for循環)?
我知道一個while循環會更適用於這樣的應用程序,但是很高興知道for循環中的這個(或類似的東西)是否可能。
謝謝!
是否可以在循環內增加for循環內的python 3?在循環內增加for循環
例如:
for i in range(0, len(foo_list)):
if foo_list[i] < bar
i += 4
當循環計數器i
得到由4如果條件成立的增加,否則它只是一個遞增(或任何步進值是for循環)?
我知道一個while循環會更適用於這樣的應用程序,但是很高興知道for循環中的這個(或類似的東西)是否可能。
謝謝!
根據條件你可以使用一個while循環,並增加i
:
while i < (len(foo_list)):
if foo_list[i] < bar: # if condition is True increment by 4
i += 4
else:
i += 1 # else just increment 1 by one and check next `foo_list[i]`
使用for循環i
將隨時返回在接下來的範圍值:
foo_list = [1,2,3,4,5,6]
bar = 6
for i in range(len(foo_list)):
print("range i ",i)
if foo_list[i] < bar:
i += 4
print("if i",i)
('range i ', 0)
('if i', 4)
('range i ', 1)
('if i', 5)
('range i ', 2)
('if i', 6)
('range i ', 3)
('if i', 7)
('range i ', 4)
('if i', 8)
('range i ', 5)
我知道我的示例代碼沒有按照它應該的方式工作。我試圖說明我的意思是將循環遞增1以上。感謝您的迴應! – Kestrel 2014-10-16 20:09:12
沒問題,不客氣。 – 2014-10-16 20:09:55
while i < end:
# do stuff
# maybe i +=1
# or maybe i += 4
我想你可以for循環做到這一點的,如果你嘗試過,但它是不可取的。 Python的for循環的整點是看項目,而不是指數
在你的榜樣書面i
將在循環(這似乎有點違反直覺)的每個新的迭代中進行設置,如下所示:
foo_list = [1, 2, 3]
for i in range(len(foo_list)):
print('Before increment:', i)
i += 4
print('After increment', i)
>>>
Before increment: 0
After increment 4
Before increment: 1
After increment 5
Before increment: 2
After increment 6
continue
是跳到下一個單迭代循環的標準/安全的方式,但它會更尷尬鏈continues
在一起,而不是隻使用一個while
環路其他建議。
一個有點hackish ...
>>> b = iter(range(10))
>>> for i in b:
... print(i)
... if i==5 : i = next(b)
...
0
1
2
3
4
5
7
8
9
>>>
這可能是一個X Y問題:林不知道爲什麼你不會只是處理列表更好地你迭代它之前。也看看這個:'for i,item_in_list in enumerate(foo_list):print(i,item_in_list)' – TehTris 2014-10-16 19:14:37