函数

1.递归函数

自己不断调用自己的过程

2.递归求和

1 def sum(arg):
2 if arg == 1:
3 return 1
4 return arg + sum(arg - 1)
5 print(sum(5))

3.递归分解

 1 def a(arg):
2 print(arg) # 第一步: 3
3 b(arg - 1) # 第二步:b(2)
4 print(arg) # 第八步: 3
5
6
7 def b(arg):
8 print(arg) # 第三步:2
9 c(arg - 1) # 第四步:1
10 print(arg) # 第七步:2
11
12
13 def c(arg):
14 print(arg) # 第五步:1
15 print(arg) # 第六步:1 回到函数调用处
16
17
18 a(3)

匿名函数lambda

1.格式

lambda[参数]:表达式内容

2.定义

不在使用def关键字定义函数,而是使用lambda创建匿名函数

3.特点

--lambda为一个表达式,所以定义比def简单

--lambda主体是一个表达式,而不是代码块,所以只能封装有限的逻辑

--lambda有自己的命名空间

4.示例

1 res = lambda a, b: a + b
2 print(res(1, 2))

高阶函数

1.map、reduce函数

---map函数

fn:传递函数

lsd:集合

功能:将传入的函数作用在集合的每一个元素上,并返回iterator

示例:

1 list1 = ['1', '2', '3']
2 def changint(a):
3 print(a, type(a))
4 return int(a)
5 print(list(map(changint, list1)))
6 print(list(map(bool, list1)))
7 print(list(map(float, list1)))

--reduce函数

fn:传递为一个函数

lsd:传入集合

功能:传入的集合中的每个元素都会作用在我们传递的函数上,做累加运算,必须传递两个参数。

1 from functools import reduce
2 list1 = list(range(10))
3
4
5 def mysum(x, y):
6 print(x, y)
7 return x + y
8 print(reduce(mysum, list1))

filter函数

fn:传入函数

lsd:传入集合

用于过滤列表;将列表中的每个元素作用于传入的函数上,根据返回值的true/false来确定是否保留该元素

示例:

1 lis = list(range(1, 11))
2 def fun(i):
3 if not i % 2:
4 return True
5 return False
6 print(list(filter(fun, lis)))

去除空字符串

 1 lis = list(range(1, 11))
2 def fun(i):
3 if not i % 2:
4 return True
5 return False
6
7 lis1 = ['a', 'b',' ', 'c', ' ', '1']
8 def fun1(i):
9 return i and i.strip()
10 print(list(filter(fun1, lis1)))

sorted函数

lsd:集合

key:排序的规则

作用:将集合中的每个元素作用于key函数上,根据函数结果进行排序。

示例:

1 lis1 = [1, 2, 0, 5, 3, -1]
2 print(list(sorted(lis1))) # 大小排序
3 lis2 = ['a', 'abc', 'ab', 'abcddd', 'addd']
4 print(sorted(lis2, key=len)) # 按长度排序

初学Python-day11 函数4的更多相关文章

  1. Python——day11 函数(对象、名称空间、作用域、嵌套、闭包)

    一.函数对象  函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即 函数名 就是 函数对象  函数对象的应用 1. 可以直接被引用  fn = cp_fn 2 .可以当作函数参数传递 c ...

  2. python day11 函数(第三篇)

    2019.4.11 S21 day11笔记总结 1. 函数小高级 ( 5* ) 1 函数名可以当作变量来使用 def func(): print(123) v1 = func # func代表函数的地 ...

  3. 跟着太白老师学python day11 函数名的应用 globals(), locals()

    1.  函数名就是内存地址 def func(): ') print(func) >>>> <function func at 0x00000000003DC1E0> ...

  4. 初学 Python(十三)——匿名函数

    初学 Python(十三)--匿名函数 初学 Python,主要整理一些学习到的知识点,这次是匿名函数. # -*- coding:utf-8 -*- #关键字lambda定义的函数都是匿名函数 #做 ...

  5. 初学 Python(十二)——高阶函数

    初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...

  6. 初学Python(九)——函数

    初学Python(九)--函数 初学Python,主要整理一些学习到的知识点,这次是函数. 函数定义: # -*- coding:utf-8 -*- #函数的定义 def my_function(x) ...

  7. Python中函数、类、模块和包的调用

    初学python阶段,大多数人对函数.类.模块和包的调用都搞得不是很清楚,这篇随笔就简单的进行说明. (1)函数 当函数定义好之后,可以直接调用. 比如:def summ(add1,add2),那么 ...

  8. 初学 Python(十五)——装饰器

    初学 Python(十五)--装饰器 初学 Python,主要整理一些学习到的知识点,这次是生成器. #-*- coding:utf-8 -*- import functools def curren ...

  9. 初学 Python(十四)——生成器

    初学 Python(十四)--生成器 初学 Python,主要整理一些学习到的知识点,这次是生成器. # -*- coding:utf-8 -*- ''''' 生成式的作用: 减少内存占有,不用一次性 ...

  10. 初学python之感悟

    python的强大有目共睹,现将初学python,觉得其中比较重要的知识罗列如下: 类似于数组的东西:列表.元组.集合.字符串以及字典,这几个东西充分体现了python的强大和逆天. 列表: x=[1 ...

随机推荐

  1. PXE预启动执行环境

    PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并 ...

  2. openresty lua_ssl_trusted_certificate 问题

    lua_ssl_trusted_certificate 语法: lua_ssl_trusted_certificate 默认: no 环境: http, server, location 指定一个 P ...

  3. 20210808 Hunter,Defence,Connect

    考场 乍一看都不可做 T1 算了半天样例,一直算出来 \(\frac{81}{400}\),直接丢了 T1 推了推发现是求最长连续 \(0\) 的数量,那就是线段树合并加上<玫瑰花精> T ...

  4. 动环监控系统中B接口的实现

    动环监控系统简述 1.术语介绍 1.1 省集中监控中心-Province Supervision Center(PSC) 面向多FSU管理的高级监控层次,即省集中监控中心,通过开放的数据协议,连接监控 ...

  5. Spring AOP 事务配置(实现转账事务)

    1. 事务特性 事务特性:ACID 原子性:整体 [原子性是指事务包含的所有操作要么全部成功,要么全部失败] 一致性:数据 [一个事务执行之前和执行之后都必须处于一致性状态] 隔离性:并发 [对于任意 ...

  6. 判断input radio选中那个

    var _sex=$("input[name='sex']:checked").val(); if(_sex==null){ layer.msg("请选择性别" ...

  7. Redis-初见

    目录 启动and连接 JRedis 宝塔 Redis.conf RDB AOF(Append Only File) 发布和订阅 主从复制 一主二从 复制原理 宕机后的手动配置主机 哨兵模式 Redis ...

  8. 前后端数据交互(八)——请求方法 GET 和 POST 区别

    WEB 开发同学一看 get 和 post 请求方法的区别,第一感觉都是 So easy! 学习ajax.fetch.axios时,发送网络请求携带参数时,都需要分别处理get和post的参数.所以我 ...

  9. centos7修改服务器时区

    查看时区设置 timedatectl 列出所有时区,通过键盘上下键进行浏览 timedatectl list-timezones 修改服务器时区为Africa/Lagos # 拉各斯的时区,UTC+1 ...

  10. 完美数java

    完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子之和,则称该数为&q ...