python map 函数

来源:互联网 发布:上海一手房成交数据 编辑:程序博客网 时间:2024/05/21 03:19

假设有一个数列,如何把其中每一个元素都翻倍?

第一种写法:

lst_1 = [1,2,3,4,5,6]

lst_2 = []

for item in lst_1:

lst_2.append(item * 2)

print lst_2


第二种写法:

lst_1 = [1,2,3,4,5,6]

lst_2 = [i * 2 for i in lst_1]

print lst_2


第三种写法: map函数

lst_1 = [1,2,3,4,5,6]

def double_func(x):

return x * 2

lst_2 = map(double_func, lst_1)

print lst_2


map 是 Python 自带的内置函数,它的作用是把一个函数应用在一个(或多个)序列上,把列表中的每一项作为函数输入进行计算,再把计算的结果以列表的形式返回。


map 的第一个参数是一个函数,之后的参数是序列,可以是 list、tuple。


所以刚刚那个问题也可以写成:


lst_1 = (1,2,3,4,5,6)

lst_2 = map(lambda x: x * 2, lst_1)

print lst_2

这里原数据改为了元组,函数用 lambda 表达式替代。



此外,当 map 中的函数为 None 时,结果将会直接返回参数组成的列表。如果只有一组序列,会返回元素相同的列表,如果有多组数列,将会返回每组数列中,对应元素构成的元组所组成的列表。听上去很绕口是不是……代码试试看就明白了:


lst_1 = [1,2,3,4,5,6]

lst_2 = [1,3,5,7,9,11]

lst_3 = map(None, lst_1)

print lst_3

lst_4 = map(None, lst_1, lst_2)

print lst_4



0 0
原创粉丝点击