首页 > 解决方案 > 我们可以将 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 代码。请任何帮助表示感谢,并在此先感谢。

标签: pythonfor-loop

解决方案


你可以这样做,但你可能不应该:

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)]

正如其他人所说,您最好只使用内置工具。


推荐阅读