zoukankan      html  css  js  c++  java
  • Python基础-----Map函数

    1、若要实现对一个列表中每个元素的更改,如对一个数字列表,得到一个新的列表是原来列表每个元素的平方
    l = [1,3,5,7,9]
    def pingfang(x):
    return x**2
    def map_test(func,array):
    ret = []
    for i in array:
    ret.append(func(i))
    return ret
    print(map_test(pingfang,l))
    >>> [1,9,25,49,81]
    2、上例可以用lambda匿名函数取代执行元素的操作函数来处理
    def map_test(func, array):
    ret = []
    for i in array:
    ret.append(func(i))
    return ret
    print(map_test(lambda x:x**2, l))
    >>> [1,9,25,49,81]
    3、其实上述操作都可以用内置函数map来取代操作
    map函数的用法:
    map(func,iterable)
    内部运行即为将传入的iterable对象用for循环提取出来,用传入的第一个参数func函数来处理
    类似于上述2中我们自定义的map_test()函数,第一个参数是传入一个执行函数,第二个参数是个可迭代对象,最终返回值是
    迭代器,所以需要用list()等方法将其转换为列表等可迭代对象(在python2中直接map()返回的为一个列表)
    a.将列表的每个元素平方
    print(list(map(lambda x:x**2,[1,3,5,7,9])))
    >>> [1,9,25,49,81]
    b. 将字符串中每个字符转换为大写
    msg = 'abcdefg'
    print(list(map(lambda x:x.upper(),msg)))
    >>> ['A','B','C','D','E','F','G']
  • 相关阅读:
    JVM学习笔记(一)------基本结构
    基于 Android 的 3D 视频样本代码
    Objective-C语法之代码块(block)的使用
    javabean总结
    oncopy和onpaste
    Linux/UNIX之信号(2)
    Html的空格显示
    硬盘的读写原理
    IntentFilter
    MyEclipse配置启动多个Tomcat
  • 原文地址:https://www.cnblogs.com/Meanwey/p/9741243.html
Copyright © 2011-2022 走看看