Python3 中的map


最近看一段Python2寫的代碼,有一句:

torch.FloatTensor(map(lambda x: x['values'], data))

Python3下運行后報錯:

TypeError: new(): data must be a sequence (got map)

我的data明明是sequence!原來是Python版本的問題ε=(´ο`*)))

 

map() 會根據提供的函數對指定序列做映射。

語法:
map() 函數語法:map(function, iterable, …)

參數:
function – 函數
iterable – 一個或多個序列

第一個參數 function 以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數返回值的新列表。


返回值:

Python 2.x 返回列表。
Python 3.x 返回迭代器。

例如:我想返回由字典組成的list a中的key為key1的所有元素的值,直接采用map返回一個iterator,通過list(map())將map轉換為list。

 1 a = [{'key1':1, 'key2':2}, {'key1': 3, 'key3': 4}]
 2 
 3 b = map(lambda x: x['key1'],  a)
 4 
 5 >>> b
 6 
 7 <map at 0x23f3e386188>
 8 
 9 
10 >>> b = list(map(lambda x: x['key1'], a))
11 
12 [1, 3]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM