zoukankan      html  css  js  c++  java
  • python基础:内置函数zip,map,filter

    一、zip

    zip,就是把俩list,合并到一起,如果想同时循环2个list的时候,可以用zip,会帮你轮流循环两个list
    比如:
    l1=[1,2,3,4,5]
    l2=['a','b','c','d','e']
    for a,b in zip(l1,l2):
      print(a,b)
    #得到的结果就是
    1 a
    2 b
    3 c
    4 d
    5 e

    如果两个list的长度不一致,则以长度小的为依据

    比如:
    l1=[1,2,3,4]
    l2=['a','b','c','d','e']
    for a,b in zip(l1,l2):
      print(a,b)
    #得到结果就是
    1 a
    2 b
    3 c
    4 d

    二、map

    循环调用函数

    def my(num):
        return str(num)
    lis = [1,2,3,4,5,6,7,8,9]
    res = list(map(my,lis))#map参数第一个是函数名,第二个是要循环的内容,返回结果是个map object地址,所以要用list强制转换下
    print(res)#最终会将lis中的内容循环调用my函数,res=['1','2','3','4','5','6','7','8','9']
    def my(num1,num2):
        return (num1,num2)
    lis = [1,2,3,4,5]
    lis1=['a','b','c','d']
    res = list(map(my,lis,lis1))#map参数第一个是函数名,剩下的是要循环的内容,函数有几个参数,就要写入几个变量,返回结果是个map object地址,所以要用list强制转换下
    print(res)#最终会将lis和lis1中的内容循环调用my函数,res=[(1,'a')(2,'b')(3,'c')(4,'d')]

    三、filter

    filter和map表面上看是一样的,都是循环调用函数,区别在于: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只保留,返回为真的数据。将lis循环滴入even函数后,能够返回True的lis中的数据,会被打印出来,所以最终结果就是2,4,6,8
    #如果改程序用map的话,函数返回什么就会打印什么,最终结果是False,True,False,True.....
  • 相关阅读:
    背景(北极狐)
    【面试】java基础
    C#分享海报生成
    jetson nano 4gb记录
    jetson nano 2gb相关问题
    分布式系列-分布式ID
    Mybatis-Plus 多租户模式忽略某个方法
    IDEA 集成 Docker 插件实现一键远程部署 SpringBoot 应用,无需三方依赖,开源微服务全栈有来商城线上部署方式
    《将博客搬至CSDN》
    elk收集docker容器的json格式日志
  • 原文地址:https://www.cnblogs.com/bendouyao/p/9047993.html
Copyright © 2011-2022 走看看