如何在两个值之间切换?

新手上路,请多包涵

我想在 Python 中的两个值之间切换,即在 0 和 1 之间。

例如,当我第一次运行一个函数时,它产生数字 0。下一次,它产生 1。第三次它回到零,依此类推。

抱歉,如果这没有意义,但是有人知道这样做的方法吗?

原文由 Yngve 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 806
2 个回答

使用 itertools.cycle()

 from itertools import cycle
myIterator = cycle(range(2))

myIterator.next()   # or next(myIterator) which works in Python 3.x. Yields 0
myIterator.next()   # or next(myIterator) which works in Python 3.x. Yields 1
# etc.

请注意,如果您需要比 [0, 1] 更复杂的循环,则此解决方案 此处发布的其他解决方案更具吸引力……

 from itertools import cycle
mySmallSquareIterator = cycle(i*i for i in range(10))
# Will yield 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 0, 1, 4, ...

原文由 Platinum Azure 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用这样的生成器来完成此操作:

 >>> def alternate():
...   while True:
...     yield 0
...     yield 1
...
>>>
>>> alternator = alternate()
>>>
>>> alternator.next()
0
>>> alternator.next()
1
>>> alternator.next()
0

原文由 g.d.d.c 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题