python的map函数

时间:2013-10-27 09:04:57

标签: python map python-3.3

>>> dataset
[[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]]
>>> D=map(set,dataset)
>>> D
<map object at 0x0000000002ABF5F8>

当我将D输入python3.3的交互式窗口时,我认为它应该出现:

[set([1, 3, 4]), set([2, 3, 5]), set([1, 2, 3, 5]), set([2, 5])]

为什么是地图对象?

2 个答案:

答案 0 :(得分:2)

为什么地图的结果是一个对象?因为在documentation for python 3.3中写入它会产生结果,因此它是一个生成器。

您可以使用

阅读
for i in D:
  print i

或正如Grijesh所建议的那样

list(D)会将其转换为列表

答案 1 :(得分:2)

在Python 3中,map不返回列表,而是返回地图对象,迭代器。关于此问题有一个similar question。 如果您需要列表,可以轻松将其转换为列表:

D = list(map(set,dataset))

请参阅docs了解相关信息。

顺便说一下,将小写字母用于变量名称是一种很好的做法。希望这有帮助!