Python3中map物件問題

2021-07-30 14:39:54 字數 853 閱讀 7495

在python2中,map函式會返回乙個list列表,例如:

>>>x=map(str,[1,2,3])

['1','2','3']

在python3中,map函式返回的是乙個map物件,例如:

>>>x=map(str,[1,2,3])

在python3中如果想要將這個map物件用列表的方式輸出,需要用list()函式進行轉換,例如:

>>>list(x)

['1', '2', '3']

問題出現了,講道理,剛剛執行的list操作是不會影響到map物件x本身的內容的,但是如果再對map物件x進行一次list操作,會發現x中的內容變為了空,影響了map物件的二次使用。例如:

>>>list(x)

具體整個過程看下圖:

對於這個問題,我用的解決方法是,在生成map物件以後便用列表推導式把map物件轉換為列表。

>>>x=map(str,[1,2,3])

>>>x=[v for v in x]

['1','2','3']

或者

>>>x=list(map(str,[1,2,3]))

['1','2','3']

另外如果能有大神解答,為什麼兩次list操作會使得map物件變為了空的話,那就太感謝了!

Python3下map函式的顯示問題

即map函式接收的第乙個引數為乙個函式,可以為系統函式例如float 或者def定義的函式 或者lambda定義的函式均可。舉乙個簡單的例子,下面這個例子在python2.7下是可以正常顯示的 ls 1,2,3 rs map str,ls 輸出結果 1 2 3 lt 1,2,3,4,5,6 def ...

python3物件導向

類 class 描述同屬性和方法的物件的集合。方法 類中定義的函式 例項化 建立乙個類的例項,類的具體物件。物件 通過類定的資料例。包括兩個資料成員 類變數和例項變數 和方法。支援操作 屬性引用和例項化 class myclass i 12345 deff self return hello wor...

Python3 物件導向

類名 這類事物的名字,滿足大駝峰命名法,每乙個單詞的首字母大寫 屬性 這類事物具有什麼樣的特徵,身高,體重,年齡等 方法 這類事物具有什麼樣的行為,會跑,會說話,會跳等 class cat 名字貓的類,建議用大駝峰 def init self,new name,new age self.name n...