我有一些形式的代码:
for i in range(nIterations):
y = f(y)
Run Code Online (Sandbox Code Playgroud)
f
其他地方定义的函数在哪里.希望该代码的想法是,它运行之后y
将 f
适用于它的nIterations
时间.
在python中有一种方法可以将它写在一行中吗?
像这样?
for i in range(nIterations): y = f(y)
Run Code Online (Sandbox Code Playgroud)
带有一个命令的for循环可以写成一行.
编辑
或者可能稍微清洁:
for _ in xrange(nIterations): y = f(y)
Run Code Online (Sandbox Code Playgroud)
既然你不想要一个可以分成两个单独的语句的东西(我想),这里是另一个:
reduce(lambda y, _: f(y), xrange(nIterations), initValue)
Run Code Online (Sandbox Code Playgroud)
不过,我建议您只使用原始代码,它更直观,更易读.还要注意Guido van Rossum对循环的评价repeat
.注意(在python 2.x中)xrange
比range
大型n迭代更有效,因为它返回实际的迭代器而不是分配的列表.
归档时间: |
|
查看次数: |
4636 次 |
最近记录: |