我是靠谱客的博主 幽默夏天,最近开发中收集的这篇文章主要介绍python lambda的使用/列表内字典的排序/高阶函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

         简介:lambda的使用是为了简化代码,当函数只有一行代码时可以使用lambda表达式来表示

         lambda表达式也叫匿名函数

        lambda语法:lambda 参数列表:表达式,  参数是可以有也可以没有的,但只有一个返回值

lambda的返回值是一个地址,要取到返回的值,需要像调用函数一样使用

fn2 = lambda: 100
print(fn2)  # 输出的是lambda的内存地址
# 使用lambda表达式,需要像调用函数那样fn2()

        lambda参数类型:1)默认参数

                                      2)可变参数(args):传入不定长参数,返回元组

                                      3)可变参数(kwargs):传入指定参数,返回字典

# 默认参数
fn3 = lambda a, b, c = 100: a + b + c
print(fn3(10, 20))
# 可变参数
fn4 = lambda *args: args
print(fn4(10, 20, 30))  # 传入一个不定长的参数,返回一个元组
# 可变参数
fn5 = lambda **kwargs: kwargs
print(fn5(python='简单', name='tom'))  # 传入指定的参数,返回字典
# lambda应用
fn6 = lambda a, b: a if a > b else b  # 谁大返回谁
print(fn6(1000, 200))

        排序:使用列表中sort函数对字典进行排序,在使用时用到lambda表达式,及key关键字

students = [{'name': 'tom', 'age': 20, 'sex': 'nan'},
            {'name': 'amary', 'age': 30, 'sex': 'nv'},
            {'name': 'haha', 'age': 25, 'sex': 'nv'}]
print(students)
# 使用sort进行排序
# name对应的value值进行升序排序
students.sort(key=lambda x: x['name'])  # 使用key值进行调用
print(students)
# name对应的value值进行降序排序
students.sort(key=lambda x: x['name'], reverse=True)
print(students)
# age对应的value值进行升序排序
students.sort(key=lambda x: x['age'])
print(students)

        高阶函数:把函数作为参数进行传递,是一种函数式编程的体现,函数式编程指高度抽象的编程范式

        两个函数:1)abs() 函数:求绝对值

                          2)round() 函数:对数据进行四舍五入

        内置高阶函数:1)map() 函数:map(func,list) 将传入的函数func作用到序列list中的每一个元素,并将结果组成新的列表(python2)/迭代器(python3)返回

                                 2)reduce() 函数:reduce(func,list) 传入的函数func必须有两个参数,该函数计算序列list中所有的元素和,注意:需要使用import导出模块,import functools

                                 3)filter() 函数:filter(func,list) 过滤序列,把不符合func函数条件的数据过滤掉,并且返回的是一个地址,需要list()转换为列表

# map() 函数
# map(func, list) 将传入的函数变量func作用到list变量中的每个元素,并将结果组成新的列表(python2)/迭代器(python3)返回
list1 = [1, 2, 3, 4]
def func1(x):
    return x**2
result = map(func1, list1)  # 返回的是一个列表
print(result)  # 返回了一个内存地址
print(list(result))  # 拿到地址中的数据
# reduce() 函数
# reduce(func, list) 其中func必须有两个参数,每次func计算的结果继续和序列的下一个元素累积计算
# 需要 导出模块 import functools
import functools  # 导出模块语句
list2 = [1, 2, 3, 4]
def func2(a, b):
    return a + b
result = functools.reduce(func2, list2)  # 返回的序列元素和  前一个结果和下一个相加
print(result)
# filter() 函数
# filter(func,list) 用于过滤序列,过滤掉不符合条件的数据,返回一个filter对象,即是一个地址,需要使用list()转换为列表
list3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def func3(a):
    return a % 2 == 0
result = filter(func3, list3)  # 返回的是一个地址
print(result)
print(list(result))

最后

以上就是幽默夏天为你收集整理的python lambda的使用/列表内字典的排序/高阶函数的全部内容,希望文章能够帮你解决python lambda的使用/列表内字典的排序/高阶函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部