前言
刚开始接触python的函数,有没有很难理解,为什么要这样做我这样不行吗?试了N多次还是以一段错误提示反馈给你,最后还是选择百度搜索一下这个函数到底怎么使用。其实看官方的文档也是能找到答案的。
map(function, iterable, ...)
Apply function to every item of iterable and return a list of the results. If additional iterable arguments are passed, function must take that many arguments and is applied to the items from all iterables in parallel. If one iterable is shorter than another it is assumed to be extended withNoneitems. If function isNone, the identity function is assumed; if there are multiple arguments, map() returns a list consisting of tuples containing the corresponding items from all iterables (a kind of transpose operation). The iterable arguments may be a sequence or any iterable object; the result is always a list.
Wow,全是英文刚开始看是会觉的一个头两个大,不懂就拿手机查,多次之后,你会觉得我也是能看懂英文的人啦。一起来看一下这个函数是怎么使用的。
map函数定义:
它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回
因为python3map函数返回的是迭代器,所以要转成list才能打印
如果给出了额外的可迭代参数,则对每个可迭代参数中的元素同时应用‘function’。
map的另类用法:
map可以用列表解析代替
map(f, iterable) 等价于 [f(x) for x in iterable]我们验证一下:
看一下结果:
貌似结果是一样的相同,我们再验证一下
结果好像不一样了,列表解析好像是把结果全打印出来了,看来还是不能全部代替,如果能全部代替,那可能看不到map了。
map函数的应用:
假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,请利用map()函数,把一个list(包含若干不规范的英文名字)变成一个包含规范英文名字的list:
输入:['adam', 'LISA', 'barT']
输出:['Adam', 'Lisa', 'Bart']
结果如下: