• 内置函数续


    filter 过滤

    def x_1(x):
        return x % 2 == 1
    ret = filter(x_1,[1,2,3,4,5,6,67,78,8,9,])
    for i in ret:
        print(i)
    View Code

    filter接收两个参数,第一个是函数名,不能加(),第二个是可迭代的。filter会将可迭代对象里面的所有参数输入函数中并进行过滤。(最后是通过最后返回的bool值来确定的)

    我们也可以用列表推导式来完成这个效果,如:

    print([i for i in [1,2,3,4,5,6,67,78,8,9,]if i % 2 ==1])
    View Code

    但是filter可以执行更加复杂的过滤,但是结果·都是一样的。

    用处:我们可以用它来删除None和空字符串。

    作业:取1——100中所有开根号后是整数的数。

    from math import sqrt
    def b(x):
        return sqrt(x)%1==0
    ret = filter(b,range(1,101))
    for i in ret:
        print(i)
    View Code

     map

    把每一个参数都已相应的处理函数进行迭代处理,map()函数接收两个参数,一个函数,一个是序列。map将传入的函数依次作用到序列的每一个元素,并将结果作为新的list给返回。

    ret = map(abs,[-12,-234.123,-2,234])
    print(ret)
    for i in ret:
        print(i)
    View Code

    sorted

    参数说明:1.iterable:可迭代的

         2.key:传入一个函数名,函数的参数是可迭代类型中的每一项,根据函数的返回值大小排序。

           3,reverse:排序规则,reverse =Ture降序或者reverse = Flase升序,有默认值。

          返回值,有序列表。

    l = [12,23,1,123,423,1,123,12,12,-23,-1312,-321,-3]
    l.sort(key = abs)
    print(l)
    View Code

    原列表上进行排序

    sorted

    l = [12,23,1,123,423,1,123,12,12,-23,-1312,-321,-3]
    print(sorted(l))
    View Code

    l = [12,23,1,123,423,1,123,12,12,-23,-1312,-321,-3]
    print(sorted(l,key=abs,reverse=True))
    View Code

    优点:生成一个新列表,不改变原列表。

    确定:占内存

    总结

    filter 执行了filter之后的结果结合<=执行之前的个数

      filter只管筛选,不会改变原来的值。

    map 执行前后元素个数不变

      值可能发生变化(因为是对值进行操作并生成一个列表)

  • 相关阅读:
    如何在image加载的图片上再加载一个透明PNG水印图片
    Sublime3在windows下安装
    Redash中文版安装问题大全
    Ubuntu20.04和Docker环境下安装Redash中文版
    ubuntu 设置sudo 免密码
    ubuntu开启sshd
    secureCRT登录ubuntu 报错:`No compatible key-exchange method. The server supports these methods: diffie-hellman`
    监控elasticsearch
    修改因python是3版本导致的yum问题
    elk使用微信ElartAlert企业微信告警,自定义告警内容
  • 原文地址:https://www.cnblogs.com/zly9527/p/11409986.html
Copyright © 2020-2023  润新知