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。
a = [{‘key1‘:1, ‘key2‘:2}, {‘key1‘: 3, ‘key3‘: 4}] b = map(lambda x: x[‘key1‘], a) >>> b <map at 0x23f3e386188> >>> b = list(map(lambda x: x[‘key1‘], a)) [1, 3]
相关推荐
chuckchen 2020-10-31
Will0 2020-10-12
Dreamhome 2020-10-09
xirongxudlut 2020-09-28
星辰大海的路上 2020-09-13
chaochao 2020-08-31
猪猪侠喜欢躲猫猫 2020-08-17
快递小可 2020-08-16
shengge0 2020-07-26
巩庆奎 2020-07-21
张文倩数据库学生 2020-07-19
xirongxudlut 2020-07-18
Ericbig 2020-07-18
kyelu 2020-07-09
liangzhouqu 2020-07-07
GuoSir 2020-06-28
chaigang 2020-06-27
pythonxuexi 2020-06-25