• 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

  • 相关阅读:
    验证整数 Double 转 int 两种写法
    0 can't find referenced pointcut declarePointExpress
    nested exception is java.lang.IllegalArgumentException: Pointcut is not well-formed
    org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML doc
    嵌入式系统(胡威)2019年春第一次作业 参考答案
    PAT(B) 1021 个位数统计(Java)
    PAT(B) 1020 月饼(Java)
    PAT(B) 1019 数字黑洞(Java)
    PAT(B) 1018 锤子剪刀布(C:20分,Java:18分)
    PAT(B) 1017 A除以B(Java)
  • 原文地址:https://www.cnblogs.com/shida-liu/p/10083632.html
Copyright © 2020-2023  润新知