我在这里有个澄清。
我定义了2个函数,并将它们的名称添加到列表中。
>>> def multiply(x,y):
return (x*y)
>>> def adding(x,y):
return (x+y)
>>> funcs=[multiply,adding]
>>> for i in range(5):
value = list(map(lambda x: x(i,2), funcs))
print(value)
[0, 2]
[2, 3]
[4, 4]
[6, 5]
[8, 6]
但是当我尝试用1条单语句重写循环时,我得到的是内存位置而不是值。
>>> value = list(map(lambda x: x(i,2), funcs) for i in range(5))
>>> print(value)
[<map object at 0x01330EB0>, <map object at 0x01330EF0>, <map object at 0x01330F30>, <map object at 0x01330F70>, <map object at 0x01330FD0>]
OR
>>> value = list([map(lambda x: x(i,2), funcs)] for i in range(5))
>>> print(value)
[[<map object at 0x013430D0>], [<map object at 0x01343150>], [<map object at 0x013431F0>], [<map object at 0x01343270>], [<map object at 0x013432F0>]]
请让我知道如何从中收获价值。如果我做错了,请告诉我为什么?