我在调用下面的函数count()
后得到了一个函数列表。我想知道如何在我的代码中使用这种方式来执行这些函数。
def count():
fs = []
for i in range(1, 4):
def f():
return i*i
fs.append(f)
return fs
print(count()[0](), count()[1](), count()[2]())
答案 0 :(得分:0)
您可以使用map
将函数应用于iterable中的每个项目。 Python 3.x中的结果是可迭代的。
有几种不同的方法可以提取结果。以下是一个例子。
我还纠正了你逻辑中的一些错误。您的函数f
应该使用一个参数,大概是i
,因为它在您的函数中使用。同样,您似乎希望函数count
采用参数n
来确定您的输入范围。
def count(n):
def f(i):
return i*i
return map(f, range(1, n))
## iterate using next
res = count(5)
print(next(res)) # 1
print(next(res)) # 4
print(next(res)) # 9
## iterate using for loop
for k in count(4):
print(k)
# 1
# 4
# 9
## build list and exhaust all results
print(list(count(4)))
# [1, 4, 9]