1. 使用 range 将整数作为循环次数
原理与适用场景
在 Python 中,int 是一个不可迭代对象,当你尝试直接对一个整数做 for 循环时,会抛出 TypeError,提示 'int' object is not iterable。这就是为何需要一种将整数转为可迭代对象的技巧来实现“重复执行 n 次的操作”。
核心要点:如果目标是“执行若干次某个逻辑”,直接使用 range(n) 作为循环对象即可,因为 range 会生成一个可迭代的序列,长度等于整数 n。
代码示例
n = 5
for i in range(n):print(i)
在上述示例中,range(n) 将带来一个从 0 到 n-1 的序列,避免直接对 int 进行迭代的错误。
2. 将整数包装成单元素迭代对象
实现思路
若你需要对一个整数进行单元素迭代,可以将该整数放入一个单元素序列中,例如 [n] 或 (n,),这样就把 int 转换为了一个可迭代对象,从而可以在 for 循环中使用。

推荐场景:需要在列表或生成式中将单个数值与其他元素组合处理,或需要把同一个数值参与多次遍历的场景。
代码示例
n = 42
for x in [n]:print(x)
另一种等效写法是使用元组:(n,),效果相同,适用性广泛且语义清晰。
3. 使用 itertools.repeat 将整数转为可迭代对象
适用场景
当需要将同一个整数多次重复地参与迭代时,itertools.repeat 提供了一个简洁的方案。它会创建一个可迭代对象,按需重复给定的值,直到达到指定的次数为止。
组合能力:你可以将 repeat 与其他迭代工具组合,如 islice、zip,实现更复杂的遍历模式,避免手动维护计数器。
代码示例
from itertools import repeatn = 7
for x in repeat(n, times=5):print(x)
在这个示例中,整数 n 会被重复输出 5 次,循环本质上是对一个由重复值构成的可迭代对象进行遍历,避免直接对单一整数进行不可迭代操作的问题。


