python - Python for 循环范围与时间而不是添加索引
问题描述
有没有更简单的方法可以在C++
as中实现以下代码Python
?
for(long a = 1; a <= INT_MAX; a*=2)
for(long b = a; b <= INT_MAX; b*=2)
for(long c = b; c <= INT_MAX; c*=2)
我只能重写为while
循环,因为 Python 似乎不支持它。
喜欢
a = 1
while(a <= INT_MAX):
b = a
while(b <= INT_MAX):
c = b
while(c <= INT_MAX):
c *= 2
b *= 2
a *= 2
我很难读到这篇文章,想知道是否有更好的方法来实现它。
解决方案
如果将其分解到生成器中,它会更好读。
def geometric_range(start, end, step):
n = start
while n < end:
yield n
n *= step
for a in geometric_range(1, INT_MAX + 1, 2):
for b in geometric_range(a, INT_MAX + 1, 2):
for c in geometric_range(b, INT_MAX + 1, 2):
pass # or whatever
推荐阅读
- javascript - 在大量元素上添加事件监听器的最有效方法是什么?
- python - 如何让机器学习模型创造新事物
- python - sklearn 的 train_test_split 中的 random_state 参数
- javascript - jQuery自动完成返回整个数组而不是搜索值
- bash - 用于监控磁盘使用情况的 shell 脚本
- android - react-native-onesignal 无法为 org.gradle.api.Project 类型的根项目“天气”获取未知属性“android”
- html - 如何让 Bootstrap 的可折叠导航栏默认打开?
- html - HTML 锚按钮问题
- java - Hive 和 JDK-9 问题
- if-statement - 我的 if 和 if/else 语句中的逻辑错误在哪里?