python基础入门之十二 —— lambda表达式

一、语法

作用:简化函数代码

格式:lambda 参数列表 :表达式

P.s:

  • lambda表达式参数可有可无,参数写法同函数
  • lambda函数能接收任何数量的参数但只能返回一个表达式的值
def func0():
    return 100
func = lambda: 100  # lambda本质是一个匿名函数
print(func0)  # <function func0 at 0x000001F7FE355160>
print(func)  # <function <lambda> at 0x000001E20BAD5160>
print(func0())  # 100
print(func())  # 100

二、参数形式

# 无参数
f1=lambda:100
print(f1()) # 100

# 一个参数
f2=lambda a:a
print(f2(‘Hello!‘))  # Hello!

# 默认参数
f3=lambda a,b,c=300:a+b+c
print(f3(100,200))  # 600
# 可变参数*args,返回元组
f4=lambda *args:args
print(f4(100,200,300))  # (100, 200, 300)
# 可变参数**kwargs,返回字典
f5=lambda **kwargs:kwargs
print(f5(name=‘Tom‘,age=10))  # {‘name‘: ‘Tom‘, ‘age‘: 10}

三、应用

# 1、判断
func1 = lambda a,b: a if a>b else b
print(func1(2,3))  # 3
# 2、按照字典key排序
students = [
    {‘name‘:‘Alice‘,‘age‘:18},
    {‘name‘:‘Bill‘,‘age‘:20},
    {‘name‘:‘Cindy‘,‘age‘:16}
]
# 2.1、按照age升序排序
students.sort(key=lambda x:x[‘age‘])
print(students)  # [{‘name‘: ‘Cindy‘, ‘age‘: 16}, {‘name‘: ‘Alice‘, ‘age‘: 18}, {‘name‘: ‘Bill‘, ‘age‘: 20}]
# 2.2、按照name降序排序
students.sort(key=lambda x:x[‘name‘],reverse=True)
print(students)  # [{‘name‘: ‘Cindy‘, ‘age‘: 16}, {‘name‘: ‘Bill‘, ‘age‘: 20}, {‘name‘: ‘Alice‘, ‘age‘: 18}]

原文地址:https://www.cnblogs.com/LynHome/p/12571056.html

时间: 2024-11-06 04:15:18

python基础入门之十二 —— lambda表达式的相关文章

Util应用程序框架公共操作类(十二):Lambda表达式公共操作类(三)

今天在开发一个简单查询时,发现我的Lambda操作类的GetValue方法无法正确获取枚举类型值,以至查询结果错误. 我增加了几个单元测试来捕获错误,代码如下. /// <summary> /// 测试值为枚举 /// </summary> [TestMethod] public void TestGetValue_Enum() { var test1 = new Test1(); test1.NullableEnumValue = LogType.Error; //属性为枚举,值

python基础入门之十八 —— 面向对象版学员管理系统

main.py: from StudentMannager.manager import * if __name__ == '__main__': student_manager = Manager() student_manager.run() manager.py: from StudentMannager.student import * class Manager(object): def __init__(self): self.stu_list = [] # 一. 程序入口函数 de

python基础学习(十二)

模块 前面有简单介绍如何使用import从外部模块获取函数并且为自己的程序所用: >>> import math >>> math.sin(0) #sin为正弦函数 0.0 模块是程序 任何python程序都可以作为模块导入.假设写如下程序,并且将它保存为以C:\python\hello.py #hello.py print "hello,world!" 下面通过python解释器调用: >>> import sys >>

python基础入门之十八 —— 模块和包

一.模块 模块能定义函数,类和变量,模块里也能包含可执行代码. 1. 导入模块 import 模块名 from 模块名 import 功能名 from 模块名 import * # 法1:import 模块 import math print(math.sqrt(9)) # 法2:from 模块 import 功能1,功能2,…… from math import sqrt print(sqrt(8)) # 法3:from 模块 import * from math import * print

C++开发EOS基础指南:迭代器和Lambda表达式

让我们来谈谈迭代器,它是一个非常有用的工具,在整个EOS代码库中大量使用.如果您来自JavaScript背景,您可能已经熟悉迭代器,就像它们用于循环一样.迭代器的关键概念是提供一种更好的方法来遍历项集合.额外的好处是您可以为任何自定义类实现迭代器接口,使迭代器成为遍历数据的通用方法. // @url: https://repl.it/@MrToph/CPPBasics-Iterators #include <iostream> #include <vector> using nam

Python开发【第二十二篇】:Web框架之Django【进阶】

Python开发[第二十二篇]:Web框架之Django[进阶] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 新随笔 联系 订阅 管理 随笔-124  文章-127  评论-205 Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻

Python3快速入门(十二)——NumPy

Python3快速入门(十二)--NumPy 一.NumPy简介 1.NumPy简介 NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,同时对数组运算提供了大量的数学函数库.Numpy 是一个运行速度非常快的数学库,内部解除了CPython的GIL(全局解释器锁),运行效率极好,主要用于数组计算,是大量机器学习框架的基础库,NumPy主要包括如下:(1)强大的N维数组对象 ndarray(2)广播功能函数(3)整合 C/C++/

【Git入门之十二】DIY Git

[Git入门之十二]DIY Git - JackyStudio - 博客频道 - CSDN.NET Git的配置是很有学问的,如果弄懂它,将对你帮助很大. 1.用户配置 这是全局的. ? [cpp]?view plaincopy ? #设置用户名?? $Snbsp;git?config?--global?user.name?"Jacky"?? ?? #设置邮箱?? $Snbsp;[email protected]?? ? 2.设置默认编辑器 在需要输入文本信息时调用,比如之前的reba

爪哇国新游记之二十二----算术表达式计算求值

代码: import java.util.ArrayList; import java.util.List; // 辅助类 class Item{ String value; boolean isNumber; public Item(String value,boolean isNumber){ this.value=value; this.isNumber=isNumber; } public Item(char c,boolean isNumber){ this.value=String.