有没有一种方法可以在Python中运行for循环而不必向其传递列表?

2024-09-21 11:35:18 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我对此做了一些研究,我发现在Python中定义for循环的唯一方法是使用for iteratorVariable in someArray。。。这对我来说没有意义?如果我只想运行一个特定的代码块x多次,但我不想因为调用range()和在一个我永远都不会使用的列表中存储大量数字而产生额外的开销,那该怎么办呢

例如,在JavaScript中,我可以简单地说for(let i = 0;i < 10;i++){},它将定义一个变量,并在每次循环运行时递增一个变量,而在Python中,我似乎被迫调用一个方法,该方法返回大量的数字数组,以便for in循环可以遍历它们。。。这对我来说毫无意义。为什么他们要设计他们的语言只有一种for循环类型,然后强迫用户调用方法,创建变量和列表,让它以他们想要的方式运行

所以我的问题是,有没有一种方法可以在Python中运行循环,而不给它一个要迭代的数字数组?我能简单地定义一个变量并每帧递增一个吗?我是否被迫为此使用while循环


Tags: 方法代码in语言列表for定义range
2条回答

在Python3中(如果您仍在使用Python2,那么您应该使用它)range在列表中存储大量的数字。它通过创建使用数学公式的range对象一次生成一个数字(这就是len(...)在固定时间内仍然可以处理它的方式)

docs开始:

The advantage of the range type over a regular list or tuple is that a range object will always take the same (small) amount of memory, no matter the size of the range it represents (as it only stores the start, stop and step values, calculating individual items and subranges as needed).

无论哪种方式,如果您仍然不想使用range(但确实应该),那么可以使用while循环

i = 0
while i < 10:
    ...
    i += 1

@DeepSpace

我相信有人可以,但没有人会。所以不是一个解决我的硬件网站。亲自试一试,并提出具体问题”-DeepSpace 11月19日20:47

谢谢你那次没帮我。你是对的,我需要为自己做事(尤其是家庭作业)。两个月后,我最终决定再次尝试这段代码,我取得了完全的优异成绩,并让它正常工作

谢谢:)

相关问题 更多 >

    热门问题