我正在嘗試將地圖轉換為串列:
a=map(float, [1,2,3])
list(a) #first
list(a) #second
如果我列出一次(運行到#first 的行),它會按我的預期回傳 [1,2,3]。但是,如果我列出兩次,它會回傳 []。我不知道問題是什么。任何意見表示贊賞。謝謝。
uj5u.com熱心網友回復:
map將 a 轉換為 a的全部原因list是 map 是一次性迭代器;一旦你遍歷它一次,它就會耗盡(“空”),因為它實際上并沒有將其內容存盤在任何地方。
Alist存盤它的所有值并且可以迭代多次(它根據需要創建新的迭代器)。
解決方案是將地圖變成串列一次并保存對串列的參考:
a=map(float, [1,2,3])
b = list(a)
# now you can iterate over b as much as you want
另請注意,map您可以簡單地執行串列推導以一步創建串列:
a = [float(i) for i in [1, 2, 3]]
# now you can iterate over a as much as you want
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/492690.html
