再看lambda/sorted/filter/map

Posted gaofeng-d

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了再看lambda/sorted/filter/map相关的知识,希望对你有一定的参考价值。

  • lambda表达式

    这个函数用于一些简单的逻辑,请看下面这个例子:

    def func(x):
        return x ** 2

    上面这个函数逻辑很简单,对于我们来说,最重要的就是参数和返回值。正好lambda表达式应运而生:

    lambda 参数值:返回值

    因此对于第一个函数,可以改写成这样:

    func = lambda x:x**2
    print(func(10))

    求两个数的和:

    # 定义函数
    def sum(a,b):
        return a+b
    # lambda表达式
    sum=lambda a,b:a+b
  • sorted函数

    语法:sorted(iterable,key=None,reverse=False)

    这里面key是一个函数

    def func(item):
        return len(item)
    lst = ["欧阳东明", "刘伟", "刘能", "赵四", "王大拿", "赵瑞鑫"]
    res = sorted(lst, key=func)
    print(res)
    lst = ["欧阳东明", "刘伟", "刘能", "赵四", "王大拿", "赵瑞鑫"]
    res = sorted(lst, key=lambda item: len(item), reverse=True)
    print(res)

    key可以先写正常的函数,再改写成lambda表达式。

    练习:按照年龄对学生信息排列

    lst = [
        "id": 1, "name": "alex", "age": 18,
        "id": 2, "name": "test", "age": 19,
        "id": 3, "name": "dgf", "age": 17,
    
    ]
    
    res = sorted(lst, key=lambda item: item['age'])
    print(res)

    练习:按照学生姓名长度进行排序

    lst = [
        "id": 1, "name": "alex", "age": 18,
        "id": 2, "name": "tesqt", "age": 19,
        "id": 3, "name": "dgf", "age": 17,
    
    ]
    
    res = sorted(lst, key=lambda item: len(item['name']))
    print(res)
  • filter筛选

    语法:filter(function,iterable)
    function:用来筛选的函数,在filter中会自动把iterable中的元素传递给function。然后根据function返回的True或者False来判断是否保留此数据。
    # 筛选出大于18的数
    lst = [11, 15, 18, 85, 45]
    res = filter(lambda item: item >= 18, lst)
    for el in res:
        print(el, end=' ')
  • map映射

    语法:map(funtion,iterable)
    # 可以对可迭代对象中的每一个元素进行映射,分别执行function。

    计算每个元素的平方:

    lst = [11, 15, 18, 85, 45]
    res = map(lambda x: x ** 2, lst)
    print(list(res))

以上是关于再看lambda/sorted/filter/map的主要内容,如果未能解决你的问题,请参考以下文章

再看case语句

再看属性查找

ZooKeeper(先mark再看)

再看JavaEE

再看Kafka Lag

再看传指针