我们可以把For循环写成函数吗



请参阅此处的一些示例

I=int
R=range
listInput = lambda : [I(x) for x in input().strip(" ")]
for x in R(I(input())):

由于我们经常使用Int和range函数,而且我们也经常接受输入,所以我这样定义它。我的问题是,我们可以像这样在python中为循环编写代码吗。

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(Don't Repeat Yourself(编程,我希望在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)]

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

最新更新