>>> 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])]
为什么地图对象?
>>> 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])]
为什么地图对象?
为什么地图的结果是一个对象?因为在documentation for python 3.3中写道它会产生结果,因此它是一个生成器。
您可以通过使用
for i in D:
print i
阅读或因为它是由Grijesh
list(D)
建议将其转换为列出
在Python 3,地图不返回一个列表,而是一个地图对象,一个迭代器。这里有一个similar question。 如果你需要一个列表,你可以很容易地将其转换为一个列表:
D = list(map(set,dataset))
见docs这个问题。
顺便说一句,对于变量名使用小写字母是一种很好的做法。希望这可以帮助!
我写的时候还没有见过你的。不好意思,朋友。 – aIKid
它返回发生器为3+,做'列表(地图(集合,数据集))' –
阅读[获取地图()返回列表在Python 3.1中)(http://stackoverflow.com/questions/1303347/getting-a-map-to-return-a-list-in-python-3-1)我没有在任何地方阅读但我观察到了不同之处,在新的Python版本中,大多数内置函数返回的是生成器而不是序列为了提高效率,我想) –
你也可以使用LC ['set(i)for i在数据集中]' –