zoukankan      html  css  js  c++  java
  • 内置函数续

    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 执行前后元素个数不变

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

  • 相关阅读:
    mysql 修改字符集
    django 详细实例教程
    mysql 创建数据库
    Django 初始化数据库
    ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
    2019 Multi-University Training Contest 1 D.Vacation(思维)
    2019牛客暑期多校训练营(第五场)E.independent set 1(状压dp)
    2019牛客暑期多校训练营(第三场)A.Graph Games (分块)
    2019牛客暑期多校训练营(第五场)I.three points 1(暴力几何)
    2019牛客暑期多校训练营(第五场)H.subsequence 2(拓扑)
  • 原文地址:https://www.cnblogs.com/zly9527/p/11409986.html
Copyright © 2011-2022 走看看