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

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

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

为什么是地图对象?

4

2 回答 2

2

为什么 map 的结果是一个对象?因为在python 3.3 的文档中写到它会产生结果,因此它是一个生成器。

您可以使用

for i in D:
  print i

或者正如 Grijesh 所建议的那样

list(D)将其转换为列表

于 2013-10-27T09:14:59.203 回答
2

在 Python 3 中,map 不返回一个列表,而是一个映射对象,一个迭代器。关于这个有一个类似的问题。如果需要列表,可以轻松将其转换为列表:

D = list(map(set,dataset))

请参阅有关此的文档

顺便说一句,对变量名使用小写字母是一个好习惯。希望这可以帮助!

于 2013-10-27T09:19:53.760 回答