【发布时间】:2016-01-21 19:34:32
【问题描述】:
目前,如果我想通过 n 迭代 1,我可能会使用以下方法:
for _ in range(1, n+1):
print(_)
有没有更简洁的方法来完成此操作而无需参考 n + 1 ?
如果我想迭代一个从 1 开始的范围,这并不罕见,我必须指定两次增加 1,这似乎很奇怪:
-
1位于范围的开头。 -
+ 1在范围末尾。
【问题讨论】:
-
为什么你认为这是一种“肮脏”的方式?
-
n+1评估一次,所以这不是dirty方式。作为一种选择,如果您不喜欢将n+1作为range参数,请提前对其进行评估并将结果保存到变量中,然后在range调用中使用此变量。 -
我必须指定两次增加一 你连一次都没有这样做。您正在指定范围的 start (
1) 和 end (n+1)。您根本没有指定增加/增量 -
我想迭代 n 次,但必须修改对 n 的引用才能建立迭代。
-
问题似乎是
n分配不当。如果您更正了n的分配(即代码中的其他位置),那么您可以只执行for i in range(1,n):,但您可能需要n+=1,因为范围是从0索引的,所以range(2) == [0,1],等等