码迷,mamicode.com
首页 > 编程语言 > 详细

Python3 中的map

时间:2020-06-16 21:52:19      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:psi   values   typeerror   语法   float   lambda   返回   lis   字典   

最近看一段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]

 

Python3 中的map

标签:psi   values   typeerror   语法   float   lambda   返回   lis   字典   

原文地址:https://www.cnblogs.com/jiangkejie/p/13149131.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!