学渣学python之map函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/merryxuan/article/details/82856715

map()函数是Python内置的高阶函数,它接收一个函数f和一个list,并把函数f作用在list的每个元素上。从而得到一个f处理过的新的list返回。下面举个栗子:

1. 例1

list [1, 2, 3, 4, 5, 6, 7]

我们要得到list的每个元素都平方后的,新的list,怎么做呢?当然,这儿就会用到map()这个函数了。

没错,我们需要先定义一个f函数(用来给每个元素平方的):

def f(x):
    return x*x

然后map()函数:

print( list(map(f, [1, 2, 3, 4, 5, 6, 7])))

输出结果肯定就是[1,4,9,16,25,36,47]

需要注意的是,这里返回的list已经是一个新的list了,原有的list [1, 2, 3, 4, 5, 6, 7]还是原来的,没有改变。

2.list里面的元素是任意类型的情况

list里面的数据类型是任意类型的map()函数也是支持的,只需要我们定义的处理函数兼容这些数据类型就可以。例如有个列表元素是一组英文单词,现在有些单词没有严格按照大小写规则来书写。我们可以通过函数来把它纠正正确。

['adam', 'LISA', 'barT']

首先我们先定义一个处理函数

def format_name(s):
    s1=s[0:1].upper()+s[1:].lower();
    return s1;
print (list(map(format_name, ['adam', 'LISA', 'barT'])))

输出的结果是:['Adam', 'Lisa', 'Bart']

2.map()函数和lambda的共同使用

上面的代码我们就可以写成

print(list(map(lambda x:x*x,[1,2,3,4,5,6])))

注意:在Python 3.x中map返回的是一个iterator所以要转list一下才可以

猜你喜欢

转载自blog.csdn.net/merryxuan/article/details/82856715