在 Python 中重复一个动作 N 次
Repeat an action N times in Python
重复一个动作 N 次:
- 使用
range()
该类创建一个range
长度为 N 的对象。 - 使用
for
循环遍历range
对象。 - 在每次迭代中执行操作。
主程序
def print_message(message): print(message) number = 1 for _ in range(5): number = number * 2 print_message('example') print(number) # 👉️ 32
我们使用了一个for
循环来迭代一个range
对象 N 次。
range类通常用于在循环中循环特定次数,for
并采用以下参数:
姓名 | 描述 |
---|---|
start |
表示范围开始的整数(默认为0 ) |
stop |
向上,但不包括提供的整数 |
step |
范围将由每 N 个数字组成,从start 到stop (默认为1 ) |
如果您只将单个参数传递给range()
构造函数,则它被认为是stop
参数的值。
主程序
for n in range(5): print(n) # 👉️ 0 1 2 3 4 result = list(range(5)) # 👇️ [0, 1, 2, 3, 4] print(result)
该示例表明,如果
start
省略参数,则默认为0
,如果step
省略参数,则默认为1
.如果提供了start
和stop
参数的start
值,则该值是包含性的,而该stop
值是独占性的。
主程序
result = list(range(1, 5)) # 👇️ [1, 2, 3, 4] print(result)
在循环的每次迭代中for
,我们调用一个函数并重新分配一个变量。
主程序
def print_message(message): print(message) number = 1 for _ in range(5): number = number * 2 print_message('example') print(number) # 👉️ 32
您可以使用此方法执行任何其他操作 N 次。
我们为变量名使用了下划线
_
。_
对于我们不打算使用的占位符变量,有一个约定使用下划线。或者,您可以使用itertools.repeat()
该类。
使用 itertools.repeat() 重复一个动作 N 次
重复一个动作 N 次:
- 使用
itertools.repeat()
该类创建一个长度为 N 的迭代器。 - 使用
for
循环迭代迭代器。 - 在每次迭代中执行操作。
主程序
from itertools import repeat def print_message(message): print(message) number = 1 for _ in repeat(None, 5): number = number * 2 print_message('example') print(number) # 👉️ 32
itertools.repeat类接受一个对象和该
对象应重复的次数作为参数。
主程序
from itertools import repeat # 👇️ ['x', 'x', 'x', 'x', 'x'] print(list(repeat('x', 5)))
该方法返回一个包含对象重复 N 次的迭代器。
该类itertools.repeat()
比range()
这种情况下的类快一点,因为它不必int
在每次迭代时都创建一个对象。
但是,对于大多数应用程序而言,性能差异可以忽略不计 (~15%)。
您选择哪种方法是个人喜好的问题。我会使用
range()
该类,因为我发现它更直观且更易于阅读。