zoukankan      html  css  js  c++  java
  • python高阶函数(filter与sorted)

    filter()

    Python内建的filter()函数用于过滤序列

    filter()接收一个函数和一个序列。

    filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

    # def s(n): #定义函数
    #     return n%2==0 #函数输出结果为偶数
    # a=list(filter(s,[1,2,3,4,5,6,7,8,9])) #将数列中的数依次加入到函数中筛选数列中为偶数的数
    # print(a)

     把一个序列中的空字符串删掉,可以这么写:

    # def not_empty(s):
    #     return s and s.strip()
    # a=list(filter(not_empty, ['A', '', 'B', None, 'C', '  ']))
    # print(a)

     注意:filter()函数返回的是一个Iterator,也就是一个惰性序列,所以要强迫filter()完成计算结果,需要用list()函数获得所有结果并返回list

    小结

    filter()的作用是从一个序列中筛出符合条件的元素。由于filter()使用了惰性计算,所以只有在取filter()结果的时候,才会真正筛选并每次返回下一个筛出的元素。

    sorted         排序算法

    Python内置的sorted()函数就可以对list进行排序

    # a=[45,16,2,15,449,5,25,1]
    # b=sorted(a)
    # print(b)

     反向排序  ,加入参数 reverse=True

    # a=[45,16,2,15,449,5,25,1]
    # b=sorted(a,reverse=True)
    # print(b)

     默认情况下,对字符串排序,是按照ASCII的大小比较的,由于'Z' < 'a',结果,大写字母Z会排在小写字母a的前面

    # a=['Z','a','e','T']
    # b=sorted(a)
    # print(b)

     

     用key=str.lower可以忽略大小写

    # a=['Z','a','e','T']
    # b=sorted(a,key=str.lower)
    # print(b)

     

    小结

    sorted()也是一个高阶函数。用sorted()排序的关键在于实现一个映射函数。

  • 相关阅读:
    Spring中的Bean相关问题
    请谈一下spring bean的生命周期
    请谈一谈IOC中的继承和Java中的继承有什么区别
    谈谈你对Spring IOC和DI的理解,以及它们的区别
    Spring中用到了哪些设计模式
    JAVA自学笔记11
    JAVA自学笔记14
    JAVA自学笔记12
    JAVA自学笔记15
    JAVA自学笔记18
  • 原文地址:https://www.cnblogs.com/wbf980728/p/14068236.html
Copyright © 2011-2022 走看看