python map的用法

map()函数
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]

如果希望把list的每个元素都作平方,就可以用map()函数:



因此,我们只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算:

def f(x):
return x*x
a = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
for i in a:
print(i)

输出结果:

1
4
9
16
25
36
49
64
81

注意:map()函数不改变原有的 list,而是返回一个新的 list。

利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。

由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。

import sys

input_file = sys.argv[1]
output_file = sys.argv[2]

with open(input_file, 'r', newline='') as filereader:
with open(output_file, 'w', newline='') as filewriter:
header = filereader.readline()
header = header.strip()
header_list = header.split(',')
print(header_list)
filewriter.write(','.join(map(str,header_list))+' ')  #这里边map依然映射为一个新的列表,因为header_list是一个列表且这个列表的值是数字,所以要通过str转置一下。也就是说,map(方法名,列表,[列表2]),这个方法多种多样。
for row in filereader:
row = row.strip()
row_list = row.split(',')
print(row_list)
filewriter.write(','.join(map(str,row_list))+' ')

在Python2中map函数会返回一个list列表,但在Python3中,返回<map object at 0x********> 

>>> def f(x,y):

...     return{x:y}

... 

>>> a = [1,2]

>>> b = ['a','b']

>>> list(map(f,a,b))#若无外面的list,则返回<map object at 0x********> 

[{1: 'a'}, {2: 'b'}]
---------------------
作者:夏雨淋河
来源:CSDN
原文:https://blog.csdn.net/zhangchuang601/article/details/79353797
版权声明:本文为博主原创文章,转载请附上博文链接!

复制代码

map()函数是python内置的高阶函数,对传入的list的每一个元素进行映射,返回一个新的映射之后的list

原文地址:https://www.cnblogs.com/shida-liu/p/10083632.html