当前位置: 首页 > 知识库问答 >
问题:

for or while循环做某事n次[重复]

凌意
2023-03-14

在Python中,有两种很好的方法可以多次重复某个动作。其中一个是< code>while循环,另一个是- for循环。让我们来看看两段简单的代码:

for i in range(n):
    do_sth()

另一个:

i = 0
while i < n:
    do_sth()
    i += 1

我的问题是他们谁更好。当然,第一种在文档示例和各种代码中很常见,你可以在互联网上找到,它更简洁,但另一方面,它创建了一个完全无用的整数列表来循环遍历它们。这难道不是浪费内存吗,尤其是在大量迭代的情况下?

你觉得哪种方式更好?

共有3个答案

单于钊
2023-03-14

只需使用< code>range():

for _ in range(n):
    # do something n times exactly
钱卓君
2023-03-14

这比< code>xrange(和while循环)要轻,因为它甚至不需要创建< code>int对象。它在Python2和Python3中也同样适用

from itertools import repeat
for i in repeat(None, 10):
    do_sth()
郭彬郁
2023-03-14

但另一方面,它创建了一个完全无用的整数列表,只是为了循环遍历它们。这不是浪费内存吗,特别是在涉及大量迭代的情况下?

这就是乔丹(n)的用途。它避免创建数字列表,而只是提供一个迭代器对象。

在Python 3中,<code>xrange()</code>被重命名为<code>range(()<-code>-如果你想要一个列表,你必须通过<code>list(range(n))</ccode>来请求它。

 类似资料:
  • 这个问题出现在优化代码以消除潜在分支预测失败的上下文中...事实上,一起删除分支。 在我的示例中,典型的For循环使用以下语法: 据我所知,生成的汇编代码将包含某种指令来检查

  • 我如何在x个循环之后暂停我的循环x秒? 我的循环逐行读取IP地址列表。在50个循环之后,它应该暂停x秒,直到循环继续。

  • 我需要以这样的方式使用两个循环:外循环驱动内循环进行2、4、8、16和32次迭代的计算。 例如,如果i=2(对于外循环),则内循环将迭代4次 如果i=3,则内部循环将迭代8次,依此类推。 这就是我使用的逻辑 如果有任何建议,我将不胜感激

  • 事件是应用程序与自身各个功能模块以及与操作系统进行通讯的手段,也是实现事件驱动编程模型的基础,应用程序如果要响应这些事件,通常是创建一个事件队列来集中存放它们,从事件队列取出事件并调用对应处理器就是一次事件响应,而往复执行这个操作的过程就是事件循环。 驱动接口 LCUI 对事件循环的操作有处理事件、绑定事件和解绑事件,驱动模块的职责就是基于操作系统接口向 LCUI 提供实现了这些操作的接口。首先我

  • 问题内容: 我想每隔3个帖子通过XML回显图像,这是我的代码: 这是一个示例,前3个是正确的,但现在不会循环idgc.ca/web-design-samples-testing.php 问题答案: 最简单的方法是使用模数除法运算符。 工作原理:模数除法返回余数。当您为偶数倍时,余数始终等于0。 有一个陷阱:等于0。如果您的计数器从0开始,可能会导致意外结果。

  • 问题内容: 在Perl中,我可以使用以下语法多次重复一个字符: 有没有简单的方法可以在Javascript中完成此操作?我显然可以使用一个函数,但是我想知道是否有任何内置方法或其他一些巧妙的技术。 问题答案: 如今,字符串方法几乎在所有地方都已实现。它不在InternetExplorer中。)因此,除非需要支持较旧的浏览器,否则只需编写以下内容: 在之前,我们使用了此技巧: (请注意,长度为11的