<map object =“” at =“” 0xxxx =“”>错误。而map和forloop在同一行

时间:2019-03-19 05:44:13

标签: python-3.x

我在这里有个澄清。

我定义了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>]]

请让我知道如何从中收获价值。如果我做错了,请告诉我为什么?

0 个答案:

没有答案