python - 我们可以将 For 循环写成函数吗?
问题描述
请在此处查看一些示例
I=int
R=range
listInput = lambda : [I(x) for x in input().strip(" ")]
for x in R(I(input())):
因为我们经常使用 Int 和 range 函数,而且我们经常接受输入,所以我这样定义它。我的问题是我们可以像这样在python中编写for循环吗?
for(n) :return i for i in range(n)
for(n):
print(for(n))
# Or some thing else equivalent
作为参考,我可以为它编写等效的 C/C++ 代码
#define forn(i, n) for (int i = 0; i < int(n); i++)
scanf("%d", &n);
vector<bot> a(n);
forn(i, n) scanf("%d", &a[i]);
由于我在 Python 中使用 for 循环,因此我想使用 DRY(不要重复自己)编程,我希望在 python 中使用一些等效的函数来完成该 c 代码。请任何帮助表示感谢,并在此先感谢。
解决方案
你可以这样做,但你可能不应该:
def forn(n):
def new_func(func):
for i in range(n):
func(i)
return func
return new_func
@forn(10)
def f(i):
print(i)
或这个:
def forn(n, func)
return [func(i) for i in range(n)]
x = forn(10, lambda x: x**2)
但这些比
for i in range(10):
print(i)
或者
x = [i**2 for i in range(10)]
正如其他人所说,您最好只使用内置工具。