• python学习笔记(十六)内置函数zip、map、filter的使用


    1、zip,就是把两个或者多个list,合并到一起,如果想同时循环2个list的时候,就使用zip。示例如下:

    l1 = ['a','b','c','e','f','g']
    l2 = [1,2,3]
    l3=['A','B','C']
    L4=['','','niu']
    #zip,就是把俩list,合并到一起,如果想同时循环2个list的时候,
    #如果两个list长度不一样,循环次数以长度最小的list为准
    for a,b,c,d in zip(l1,l2,l3,L4):
        print(a,b,c,d)
    
    >>>>a 1 A 牛
        b 2 B 牛
        c 3 C niu

    2.map的使用。它是帮你循环调用函数的 ,比如:挨个把list里的每个元素转换为字符串

    def my(num):               
        return str(num)  
          
    lis = [1,2,3,4,5,6,7,8,9]                                                                   
    new_lis = []               
    for i in lis:              
        new_lis.append(my(i))  
    
    #如果不使用map就需要循环调用函数my

    下面来看看使用map后,就不需要循环了,map可以直接帮你循环调用函数。

    def my(num):                                                                                           
        return str(num)                                                                                    
    lis = [1,2,3,4,5,6,7,8,9]                                                                              
    res = list(map(my,lis)) #注意map里面只是传函数名,不用加括号,函数名加括号是指调用函数                                              
    print(res)                                                                                             

    3.filter,也是帮你循环调用函数的,但是它会过滤返回为真的数据,返回为假是不会保留的。为真的数据是指,为空即真,非零即真。

    def even(num):                                             
        if num%2==0:                                           
            return True                                        
        return False                                           
    lis = [1,2,3,4,5,6,7,8,9]                                  
    res = filter(even,lis)                                     
    print('filter..',list(res))  #filter只保留,返回为真的数据            
    res2 = map(even,lis)                                       
    print('map..',list(res2))  #map是帮你循环调用函数,这个函数返回就保存什么。      
    #结果是什么,它和map和的结果有什么区别   
    
    >>>filter.. [2, 4, 6, 8]
       map.. [False, True, False, True, False, True, False, True, False]                                   
  • 相关阅读:
    递归算法
    抽象类(abstract class)和接口(interface)
    静态变量和实例变量
    java 工厂化生产
    win10安装使用ffmpeg+python中使用ffmpy
    C++ Concurrency in Action 读书笔记三:并发操作的同步
    C++ Concurrency in Action 读书笔记二:用mutex互斥锁保护在线程间共享的数据
    C++ Concurrency in Action 读书笔记一:thread的管理
    C++正则表达式 <regex>
    CMake使用Boost
  • 原文地址:https://www.cnblogs.com/mululu/p/9049607.html
Copyright © 2020-2023  润新知