zoukankan      html  css  js  c++  java
  • Python 杂记:内置函数(filter、map、sorted等)

    注:本文仅列举了几个常用的内置函数,更多内置函数请参考官方文档:https://docs.python.org/3/library/functions.html

    filter

    函数原型:

    filter(function, iterable)
    

    示例:过滤掉偶数,只保留基数,代码如下:

    foo = [1, 2, 3, 4, 5]
    bar = filter(lambda x: True if x%2 else False, foo) # 相当于 perl 中的 @bar = grep { $_ % 2 } @foo
    print bar   # [1, 3, 5]
    

    map

    perl 中 map() 方法可以用于对数组元素进行批量操作,例如:

    my @foo = (1, 2, 3, 4, 5);
    my @bar = map { $_ * 2 } @foo;  # (2, 4, 5, 8, 10)
    my %qux = map { $_ => ($_ % 2 ? "odd" : "even") } @foo;
        # (1=>"odd", 2=>"even", 3=>"odd", 4=>"even", 5=>"odd")
    

    python 中类似的实现如下:

    foo = [1, 2, 3, 4, 5];
    bar = map(lambda x: x*2, foo)   # [2, 4, 5, 8, 10]
    qux = dict(map(lambda x: [x,"odd" if x%2 else "even"], foo))
        # {1: 'odd', 2: 'even', 3: 'odd', 4: 'even', 5: 'odd'}
    

    Python 中 map() 可以传入多个序列参数,例如:

    foo = [1, 3, 5, 7, 9];
    bar = [2, 4, 6, 8, 10];
    qux = map(lambda x,y: x+y, foo, bar) # [3, 7, 11, 15, 19]
    

    reduce

    示例:

    foo = [1, 2, 3, 4, 5]
    bar = reduce(lambda x,y: x+y, foo)
    print bar   # 15,相当于执行了 (((1+2)+3)+4)+5
    

    sorted

    函数原型:

    sorted(iterable, *, key=None, reverse=False)
    

    其中:

    • key 参数用于指定一个函数,通过它来计算进行比较的目标值
    • reverse 参数用于控制“降序”还是“升序”排列(默认“升序”)

    示例:假设有个学生信息列表,现在对他们按年龄进行排序,最终输出姓名列表,代码如下:

    students = [
        { "name": "Jack",  "age": 23 },
        { "name": "Linda", "age": 21 },
        { "name": "Smith", "age": 22 },
        { "name": "Lucy",  "age": 21 },
        { "name": "Jason", "age": 22 },
    ]
    names = map(
        lambda x: x["name"], 
        sorted(students, key = lambda s: s["age"])  # key 参数在 sorted() 中计算用于进行比较的目标
    )
    print(names)    # ['Linda', 'Lucy', 'Smith', 'Jason', 'Jack']
    

    join

    Python 中没有类似 perl 中的内置函数,不过可以通过字符串方法实现,例如:

    students = ['Linda', 'Lucy', 'Smith', 'Jason', 'Jack']
    names = ", ".join(students) # 返回一个字符串
    print(names)    # Linda, Lucy, Smith, Jason, Jack
    

    reversed

    函数原型:

    reversed(seq)
  • 相关阅读:
    jquery基础
    js知识-进阶
    css样式介绍
    html基础知识介绍
    样式初识-基本样式介绍
    数据库之mysql的基本操作
    python基础-UDP、进程、进程池、paramike模块
    python基础--接口与归一化设计、封装、异常、网络编程
    Python学习之路—2018/6/25
    Python学习之路—2018/6/20
  • 原文地址:https://www.cnblogs.com/itwhite/p/12340078.html
Copyright © 2011-2022 走看看