gpt4 book ai didi

python - 按倍数迭代的大多数 Pythonic 方法

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:53 26 4
gpt4 key购买 nike

我正在审查一些算法,它们有一个按常量倍数增长的 for 循环。解决此问题的最 Pythonic 方法是什么?

这不是如何解决问题的问题,更多的是讨论最好的解决方案是什么?

这是 Java 片段:

for (int i = 1; i <=n; i *= c) {
// some stuff
}

这是 python 中的实际解决方案。我认为这不是最 Pythonic 的方法:

i = 1
while i < limit:
# some stuff, remember to use i - 1 as array index
i *= constant

我能看到的 Python 方式(那不存在):

for i in mrange(1, limit, c):
# some stuff

第一次发帖。希望我标记正确...

最佳答案

你仍然可以这样做:

def mrange(start, stop, step):
i = start
while i < stop:
yield i
i *= step

然后:

for i in mrange(1, 100, 4):
print(i)

打印:

1
4
16
64

Python 无法提供默认范围函数来满足所有需求,但创建您自己的生成器是 pythonic。

如果您不喜欢这个解决方案,while 替代方案看起来也不错。

关于python - 按倍数迭代的大多数 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57148907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com