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

    一、filter()函数

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

     1 >>> from collections import Iterator
     2 >>> def is_odd(n):
     3 ...     return n % 2 == 1
     4 ... 
     5 >>> it = filter(is_odd, [1, 2, 3, 4, 5, 6])
     6 >>> it
     7 <filter object at 0x1013e58d0>
     8 >>> isinstance(it, Iterator)
     9 True
    10 >>> list(it)
    11 [1, 3, 5]

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

    二、sorted()函数

    sorted()函数就可以对list进行排序

    1 >>> sorted([36, -5, 9, -12])
    2 [-12, -5, 9, 36]

    sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序:

    1 >>> sorted([36, -5, 9, -12], key=abs)
    2 [-5, 9, -12, 36]
    1 >>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
    2 ['Zoo', 'Credit', 'bob', 'about']
  • 相关阅读:
    jmeter之正则表达式
    python_appium搭建APP自动化测试环境
    网络编程
    四种单例模式
    Pycharm快捷键
    面向对象
    阶段性总结
    模块之numpy,pandas,matplotlib
    模块之json,pickle,os,sys,logging
    模块之Time,datatime,hashlib,hmac
  • 原文地址:https://www.cnblogs.com/gundan/p/8047836.html
Copyright © 2011-2022 走看看