匿名函数 递归 推导式

三目运算符

# 三目(元)运算符:就是 if...else...语法糖
# 前提:简化if...else...结构,且两个分支有且只有一条语句
# 注:三元运算符的结果不一定要与条件直接性关系

cmd = input('cmd: ')
print('可以转化为数字') if cmd.isdigit() else print('不可以转化为数字')

a = 20
b = 30
res = a if a > b else b  # 求大值
print(res)

res = 'b为小值' if a > b else 'a为小值'  # 求小值
print(res)

推导式

# 列表推导式:[v for v in iterable]
dic = {'a': 1, 'b': 2, 'c': 3}  # => [('a', 1), ('b', 2), ('c', 3)]
res = [(k, v) for k, v in dic.items()]

# 字典推导式:{k: v fro k, v in iterable}
ls = [('a', 1), ('b', 2), ('c', 3)]  # => {'a': 1, 'b': 2, 'c': 3}
res = {k: v for k, v in ls}

递归

# ***
# 递归:回溯与递推
# 回溯:询问答案的过程
# 递推:推出答案的过程

# 本质:函数的自我调用
# 直接:自己调自己
# 间接:自己调别人,别人最终由调回自己

匿名函数

# 匿名函数:没有名字的函数
# 语法:lambda 参数列表: 一个返回值表达式

# 重点:
# 1.匿名函数:没有函数名,没有函数体,只有一个返回值
# 2.关键字:lambda  |  参数列表省略()  |  返回值return关键字也被省略

# 应用场景:
# 1.匿名函数函数地址可以被一个变量接受,该变量就可以作为函数名来使用,但就违背了匿名初衷
# 2.结合内置函数来使用: 内置函数某些参数需要一个函数地址,
#       -- 可以赋值一个有名函数名,也可以直接赋值匿名函数

内置函数

https://docs.python.org/zh-cn/3.7/library/functions.html#all

原文地址:https://www.cnblogs.com/limengda/p/10758687.html

时间: 2024-07-31 00:31:14

匿名函数 递归 推导式的相关文章

第六天递归、匿名函数、推导式、变量存储、模块

全局变量:生存周期,整个文件:函数内部.外部都能使,在函数前面后面定义都okdef fun():print(a+10)a = 10fun() 全局变量和局部变量同名:新开辟空间了,并不是重新赋值a = 10print(id(a))def fun():a = 20print(id(a))fun() global 在函数内部声明使用的是全局变量,尽可能放上面下面代码报错了. a = 10print(id(a))def fun():a = 20print("内20",id(a))global

十、函数——匿名函数、推导式

匿名函数 使用lambda创造匿名函数. 1.lambda只是一个表达式,而不是一个代码块 2.仅仅能在lambda表达式中封装有限的逻辑 3.lambda函数拥有自己的命名空间 通常形式为 —— lambda 参数:表达式 推导式1.列表推导式 快速生成列表的方式 2.字典推导式 {} 这个符号不止可用于字典推导式中,也可以用在集合推导式中. 字典推导式中的例子必须要有冒号 : 集合推导式用,连接 3.集合推导式 4.元组导式 元组推导式中,只用()是不行的,还需要圆括号前加上tuple!!!

Python--Demo13--高级特性匿名函数、推导式、迭代器、生成器

学完函数,我们还需要知道一些让我们能够提高效率的高级特性: 使用lambda关键字来创建匿名函数: lambda表达式只是一个表达式,而不是是一个代码块,函数体比def简单很多: lambda表达式仅仅能够封装一些简单的逻辑: lambda表达式拥有自己的命名空间. >>> def plusitem(pam): ... return pam*pam ... >>> type(plusitem) <class 'function'> >>>

【Python 生成器 匿名函数 递归 模块及包的导入 正则re】

一.生成器 1.定义 生成器(generator)是一个特殊的迭代器,它的实现更简单优雅,yield是生成器实现__next__()方法的关键.它作为生成器执行的暂停恢复点,可以对yield表达式进行赋值,也可以将yield表达式的值返回. 也就是说,yield是一个语法糖,内部实现支持了迭代器协议,同时yield内部是一个状态机,维护着挂起和继续的状态. yield的功能: 1.相当于为函数封装好__iter__和__next__ 2.return只能返回一次值,函数就终止了,而yield能返

Python开发基础 day10 内置函数 匿名函数 递归

匿名函数lambda 匿名函数:lambda  x,y:x+y 上述解释:x,y分别是函数的参数,x+y是函数的返回值 匿名函数的命名规则,用lamdba 关键字标识,冒号(:)左侧表示函数接收的参数(a,b) ,冒号(:)右侧表示函数的返回值(a+b). 因为lamdba在创建时不需要命名,所以叫匿名函数 等同于普通函数: 1 2 def test(x,y):     return x+y 匿名函数只是没有函数名,主要是配合内置函数使用 示例1: 1 2 3 4 5 6 7 8 9 10 #

巨蟒python全栈开发-第12天 生成器函数 各种推导式 yield from

一.今日主要内容总览(重点) 1.生成器(目的:帮助我们创建对象) (1)生成器的本质就是迭代器 (2)一个一个的创建对象 (3)创建生成器的方式: 1.生成器函数 2.通过生成器表达式来获取生成器 3.类型转换(看不到) 2.生成器函数(重点) (1)生成器函数中包含 yield关键字,返回数据和return差不多 return会立即结束和这个函数的执行 yield 可以分段的执行一个函数 (2)大坑(五星重点): 生成器函数在执行的时候返回生成器,而不是直接执行次函数 (3)能向下执行的两个

Python -- 函数之推导式

5.12 推导式 l = [] for i in range(1,11): l.append(i) print(l) # 用列表推导式 (一行搞定) l = [i for i in range(1,11)] print(l) 列表推导式可分为两种模式: 循环模式: [变量(加工的变量) for 变量 in iterable(可迭代对象)] 筛选模式: [变量(加工的变量) for 变量 in iterable(可迭代对象) if 条件] # 循环模式 1. 将10以内所有整数的平方写入列表. l

JavaScript中匿名函数的多种写法

匿名函数没有实际名字,也没有指针,怎么执行滴?  其实大家可以看看小括号的意义就应该可以理解.小括号有返回值,也就是小括号内的函数或者表达式的返回值,所以说小括号内的function返回值等于小括号的返回值,不难理解 (function(){})()可以将没有名字的函数执行了把- 关于匿名函数写法,很发散~ 最常见的用法: 代码如下: (function() { alert('water'); })(); 当然也可以带参数: 代码如下: (function(o) { alert(o); })('

js中匿名函数的N种写法

匿名函数没有实际名字,也没有指针,怎么执行? 关于匿名函数写法,很发散~ +号是让函数声明转换为函数表达式.汇总一下 最常见的用法: 代码如下: (function() {  alert('water');  })();  当然也可以带参数: 代码如下: (function(o) {  alert(o);  })('water');  想用匿名函数的链式调用?很简单: 代码如下: (function(o) {  console.log(o);  return arguments.callee;