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))+'\n') #这里边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))+'\n')
在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
posted on 2018-12-07 16:28 上山打老虎下山采蘑菇 阅读(12530) 评论(0) 编辑 收藏 举报