我有一个快速的问题:
如果我有一个函数:
a = [1,2,3,4,5,6,7]
def f(x):
return (x**2)
result = list(map(f, a))
print(result)
>>> [1, 4, 9, 16, 25, 36, 49]
但如果我:
result = []
a = [1,2,3,4,5,6,7]
def f(x):
result.append(x**2)
map(f, a)
print(result)
>>> []
这是行不通的。
但是,如果我这样编写函数,它就会起作用:
result = []
a = [1,2,3,4,5,6,7]
def f(x):
result.append(x**2)
for i in a:
f(i)
print(result)
>>> [1, 4, 9, 16, 25, 36, 49]
即使我包含它的返回值:
result = []
a = [1,2,3,4,5,6,7]
def f(x):
result.append(x**2)
return x**2
map(f, a)
print(result) # >>> []
print(list(map(f,a))) # >>> [1,2,3,4,5,6,7]
我是否应该将其理解为 map() 必须应用于具有返回值且仅返回值的函数。