Python地图元素与字符

时间:2018-03-28 16:14:30

标签: python

我是python的新手,我正在尝试理解map()函数。有没有更好的方法来做到这一点

 map(lambda x: x+"+" ,map(str,range(5)))
 output : ['0+', '1+', '2+', '3+', '4+']

4 个答案:

答案 0 :(得分:1)

对于大多数这样的任务,最好使用列表推导,如下所示:

[str(i) + '+' for i in range(5)]

在这里,您构建的列表中每个元素仅取决于数字i。然后使用str(i) + '+'构建所需元素的一种方法。另一个是'{} +'.format(i),但这与使用列表理解无关。

地图与列表理解

map函数在功能上等同于列表推导语法的限制使用。请考虑以下通用示例,它们将生成相同的输出:

list(map(fun, iterable))
[fun(el) for el in iterable]

在您的示例中,您使用fun表达式在map调用内构建函数lambda。在Python 3中需要额外的list()调用,因为map返回生成器而不是list

答案 1 :(得分:1)

您可以将format - 方法直接用作map - 参数:

map("{}+".format, range(5))

答案 2 :(得分:0)

正如你在Map中所说,你可以映射这样的东西:

print(list(map(lambda x:str(x)+'+',range(5))))

输出:

['0+', '1+', '2+', '3+', '4+']

其他信息:

map()是一个带有两个参数的函数:

map(g, iterable)

第一个参数函数是一个函数,第二个函数是一个序列。

Python 3 map相当于生成器表达式

(g(x) for x in iterable)

答案 3 :(得分:0)

output = ['{}+'.format(i) for i in range(5)]
print output
['0+', '1+', '2+', '3+', '4+']