蟒蛇

2013-10-27 212 views
1
>>> 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])]

爲什麼地圖對象?

+4

它返回發生器爲3+,做'列表(地圖(集合,數據集))' –

+2

閱讀[獲取地圖()返回列表在Python 3.1中)(http://stackoverflow.com/questions/1303347/getting-a-map-to-return-a-list-in-python-3-1)我沒有在任何地方閱讀但我觀察到了不同之處,在新的Python版本中,大多數內置函數返回的是生成器而不是序列爲了提高效率,我想) –

+1

你也可以使用LC ['set(i)for i在數據集中]' –

回答

2

爲什麼地圖的結果是一個對象?因爲在documentation for python 3.3中寫道它會產生結果,因此它是一個生成器。

您可以通過使用

for i in D: 
    print i 

閱讀或因爲它是由Grijesh

list(D)建議將其轉換爲列出

2

在Python 3,地圖不返回一個列表,而是一個地圖對象,一個迭代器。這裏有一個similar question。 如果你需要一個列表,你可以很容易地將其轉換爲一個列表:

D = list(map(set,dataset)) 

docs這個問題。

順便說一句,對於變量名使用小寫字母是一種很好的做法。希望這可以幫助!

+0

我寫的時候還沒有見過你的。不好意思,朋友。 – aIKid