函数

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. Android Parsing between JSON and Kotlin Object with Google Gson Library

    Parsing between JSON and Kotlin Object with Google Gson Library dependencies { ... implementation 'c ...

  2. Mysql常用sql语句(5)- as 设置别名

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 需要注意,创建数据库和创建表的语句博文都在前面哦 整个 ...

  3. python模块--pathlib

    类/属性/方法 返回值 参数 说明 .Path() p 创建Path对象 path 路径         p.parent Path 返回上一级路径 p.parents iter 上一级路径, 上上级 ...

  4. Lambda函数接口和方法构造器应用

    函数式接口 什么是函数式接口? 在java中'有且仅有一个抽象方法的接口',就称为函数式接口. 可以通过Lambda表达式来创建该接口的对象.(若Lambda表达式抛出一个受检异常,那么该异常需要在目 ...

  5. open failed: EACCES (Permission denied)

    出现背景:调用系统相册进行图片展示,但是没有成功,是空白的,且检查权限无问题 解决方法

  6. .Net Core with 微服务 - 分布式事务 - 可靠消息最终一致性

    前面我们讲了分布式事务的2PC.3PC , TCC 的原理.这些事务其实都在尽力的模拟数据库的事务,我们可以简单的认为他们是一个同步行的事务.特别是 2PC,3PC 他们完全利用数据库的事务能力,在一 ...

  7. PHP设计模式之中介者模式

    上回说道,我们在外打工的经常会和一类人有很深的接触,那就是房产中介.大学毕业后马上就能在喜欢的城市买到房子的X二代不在我们的考虑范围内哈.既然需要长期的租房,那么因为工作或者生活的变动,不可避免的一两 ...

  8. JS验证监听输入银行卡号

    $("#AccountNum").keydown(function(e) { if(!isNaN(this.value.replace(/[ ]/g,""))) ...

  9. 手机访问pc网站自动跳转手机端网站PHP代码

    $agent = $_SERVER['HTTP_USER_AGENT']; if(strpos($agent,"comFront") strpos($agent,"iPh ...

  10. Python中Tk模块简单窗口设计

    Python中Tk和PyQt都可以设计小程序,区别在于:Tk界面美观度相对较差,但由于是Python的内置模块,最终生成的程序大小相比于PyQt较小. import tkinter # 导入TKint ...