>>> 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在數據集中]' –