python - Python 中的无限 for 循环,如 C++
问题描述
在C++
我们可以编写一个无限循环,如for(;;)
. 这里有这样的语法来在 Python 中编写无限 for 循环吗?
注意:我知道如果我写,for i in range(a_very_big_value)
那么它可能会运行无穷大。我正在寻找一个简单的语法C++
或任何其他infinite for loop
用 Python 编写的技巧。
解决方案
Python 的for
语句是一个“for-each”循环(有点像C++11 及更高版本中的range-for),而不是 C 风格的“for-computation”循环。
但请注意,在 Cfor (;;)
中,与while (1)
. Python 的while
循环与 C 的循环基本相同,只是有一些额外的花里胡哨。而且,事实上,永远循环的惯用方式是:1
while True:
如果你真的想写一个for
永远存在的循环,你需要一个无限长的迭代。您可以从标准库中获取一个:2
for _ in itertools.count():
……或者自己写一个:
def forever():
while True:
yield None
for _ in forever():
但同样,这与 并不真正相似for (;;)
,因为它是一个 for-each 循环。
1.while 1:
曾经是常见的替代品。它在旧版本的 Python 中更快,虽然不是在当前版本中,但有时这很重要。
2. 当然,重点count
不是永远持续下去,而是永远数数。例如,如果enumerate
不存在,您可以将其写为zip(itertools.count(), it)
.
推荐阅读
- python - 从两个列表中构建新列表,保持顺序相同,尽可能具有相同的表示
- java - 如何扫描文本文件并将其转换为 2D 字符数组?
- python - 无法更新 Anaconda 软件包
- python - 如何遍历文件夹以为文件夹中的每个项目运行脚本?
- mysql - 使用 group by 在子查询中求和
- ios - UserNotificationCenter 代表没有被调用?
- sql - 计算层次结构路径的顶层?
- swift - UICollectionView 在 UICollectionViewCompositionalLayout 上自动滚动
- python - 没有 glfw 上下文无法编译着色器
- css - nth-child(odd) 影响所有孩子而不是奇数