python是否有一種簡單的方法可以在給定範圍內循環變量? 例如: 給定一個範圍(),我想要一個變量是這樣的: 0 1 2 3 2 1 0 1 2 3 ...直到滿足一些條件。如何循環python中給定範圍內的變量
0
A
回答
1
你想cycle
序列0, 1, ..., n, n-1, ..., 1
。 您可以輕鬆地構建利用chain
from itertools import chain, cycle
def make_base_sequence(n):
base = range(n+1) # 0, ..., n
rev_base = reversed(range(1, n)) # n-1, ..., 1
return chain(base, rev_base) # 0, ..., n, n-1, ..., 1
for x in cycle(make_base_sequence(5)):
print(x)
樣品運行序列:
In [2]: from itertools import chain, cycle
...:
...: def make_base_sequence(n):
...: base = range(n+1)
...: rev_base = reversed(range(1, n))
...: return chain(base, rev_base)
...:
...: for i, x in enumerate(cycle(make_base_sequence(5))):
...: print(x, end=' ')
...: if i > 20:
...: break
...:
0 1 2 3 4 5 4 3 2 1 0 1 2 3 4 5 4 3 2 1 0 1
0
你想itertools.cycle()
,在這裏看到:
https://docs.python.org/2/library/itertools.html#itertools.cycle
0
演示:
>>> import itertools
>>> count = 0
>>> for x in itertools.cycle(range(3)):
... if count == 10:
... break
... print x,
... count += 1
...
0 1 2 0 1 2 0 1 2 0
0
itertools.cycle
是一個良好的開端。否則,你可以自己編寫它:
cycle = [0,1,2,3,2,1]
i = 0
while some_condition:
value = cycle[i]
i = (i+1) % len(cycle)
#do stuff
0
import itertools
def f(cycle_range, condition_func):
sequence = range(cycle_range) + range(cycle_range)[-2:0:-1]
cycle_generator = itertools.cycle(sequence)
while not condition_func():
yield next(cycle_generator)
def condition_func():
"""Checks some condition"""
從本質上講,你只是想循環並不斷檢查車況。並且每次都會從循環中提取下一個項目。現在,無可否認有更好的方法來檢查一個條件而不是函數調用,但這僅僅是一個例子。
0
import time
def cycle(range_):
num = -1
current = 0
a=time.time()
while 1:
print current
if current in (0, range_):
num*=-1
current += num
if time.time() - a > 0.002:
break
cycle(3)
輸出:
0 1 2 3 2 1 0 1 2 3 2 1 0 1 2 3 2 1 0 1 2 3 2 1 0 1 2 3 2
相關問題
- 1. 循環內變量範圍
- 2. for循環中的Python變量範圍
- 3. 數字在給定的範圍內,如果循環python
- 4. JS循環變量範圍
- 5. JavaScript循環變量範圍
- 6. While循環中變量的範圍
- 7. for循環中變量的範圍C++
- 8. 的Python 3.0 - 指定範圍內環路輸出變量
- 9. 基於範圍的循環中未命名的循環變量?
- 10. 如何在Python中影響內循環的外循環變量?
- 11. Excel範圍循環變量的名稱
- 12. JavaScript的循環變量範圍?
- 13. 變量範圍的for循環
- 14. 如何強制Python在循環內創建新變量/新範圍?
- 15. 循環中的Python變量範圍示例
- 16. 如何訪問PHP中循環範圍外的變量值?
- 17. Javascript可變範圍內循環
- 18. python中的變量範圍
- 19. Python中的變量範圍
- 20. Swift循環持續變量/範圍
- 21. For循環變量範圍混淆
- 22. 對於循環變量範圍
- 23. for循環外的變量範圍內的故障
- 24. 如何把索引變量放在for循環中的局部範圍內?
- 25. 線程for循環內變量的範圍?
- 26. 與範圍內的變量循環將無法工作
- 27. 重複在變量範圍內循環的腳本
- 28. Python:將變量傳遞給範圍()
- 29. 是否有必要在CFScript中變量範圍循環變量?
- 30. 循環在一定範圍內,逐行
這是無效的代碼,你檢查「計數」,並分配給它,但你永遠不會初始化。 (另外,「count」是一個變量恕我直言的壞名字) –