内置函数:

https://www.processon.com/view/link/5adc6062e4b04721d63171eb?pw=3218

匿名函数:lambda

lambda 语法: lambda 参数: 表达式

lambda存在意义就是对简单函数的简洁表示。

# 现有两元组 (('a'),('b')), (('c'), ('d')),请用python中的匿名函数生成[{'a':'c'}, {'b':'d'}]
# t1 = (('a'),('b'))
# t2 = (('c'), ('d'))
# print(list(zip(t1, t2)))
# def func(t):
#     return {t[0]: t[1]}
# m1 = map(func,zip(t1, t2) )
# print(list(m1))
# ==
# m1 = map(lambda t: {t[0]: t[1]}, zip(t1, t2))
# print(list(m1))

以下代码的输出是什么? 请给出答案并解释
# def multipliers():
#     return [lambda x: i*x for i in range(4)]
"""
def  multipliers():retun [lambda x: i*x,lambda x: i*x,lambda x: i*x,lambda x: i*x]
每次循环i都会被重新赋值给,最终i == 3
"""
#
# print([m(2) for m in multipliers()])
# 结果:
# [6, 6, 6, 6]
'''
执行[lambda x: i*x,lambda x: i*x,lambda x: i*x,lambda x: i*x]这个四个函数x都==2,i== 3
'''# 想要产生 0, 2, 4, 6的话,可以修改为生成器表达式,因为生成器默认是取值的时候才会执行的,所以i分别取值为[0,1,2,3]
# def multipliers():
#     return (lambda x: i*x for i in range(4))
# print([m(2) for m in multipliers()])

1.map函数,我们使用map函数将会对列表中的所有元素进行操作。map有两个参数(函数,列表),它会在内部遍历列表中的每一个元素,执行传递过来的函数参数。在输出到新列表中。

1 li = [11, 22, 33]
2 new_list = map(lambda a: a + 100, li)输出:[111, 122, 133]

当然,map还可以完成多个数组的相加:

1 li = [11, 22, 33]
2 sl = [1, 2, 3]
3 new_list = map(lambda a, b: a + b, li, sl)
4 print new_list输出:[12, 24, 36]

2.reduce函数,对于序列内所有元素进行累计操作:

1 lst = [11,22,33]
2 func2 = reduce(lambda arg1,arg2:arg1+arg2,lst)
3 print 'func2:',func2输出:func2: 66

3.filter函数,他可以根据条件对数据进行过滤:

1 li = [11, 22, 33]
2 new_list = filter(lambda arg: arg > 22, li)3 print new_list输出:[33]

递归函数

我们先来讲一个故事,讲的什么呢?从前有座山,山里有座庙,庙里有个老和尚讲故事,讲的什么呢?

从前有座山,山里有座庙,庙里有个老和尚讲故事,讲的什么呢?

从前有座山,山里有座庙,庙里有个老和尚讲故事,讲的什么呢?

从前有座山,山里有座庙,庙里有个老和尚讲故事,讲的什么呢.....

.这个故事你们不喊停我能讲一天!我们说,生活中的例子也能被写成程序,刚刚这个故事,让你们写,你们怎么写呀?

while True:story = "
    从前有个山,山里有座庙,庙里老和尚讲故事,讲的什么呢?   "
    print(story)

函数的执行方式:

def story():s = """从前有个山,山里有座庙,庙里老和尚讲故事,讲的什么呢?"""print(s)while True:story()

递归的方式实现:

def story():s = """从前有个山,山里有座庙,庙里老和尚讲故事,讲的什么呢?"""print(s)story()story()

初识递归

# 递归调用: 在调用一个函数的过程中,直接或者间接又调用函数的本身,称之为递归函数# 递归必备的两个阶段1、递推,2、回溯

  递归的最大深度——1000

# def func(n):
#     print('--->', n)
#     func(n+1)
# func(0)  #-->RecursionError: maximum recursion depth exceeded while calling a Python object# python默认的最大递归层数是998层

测试最大递归深度

获取与设置最大深度
import sys
# print(sys.getrecursionlimit())  获取最大递归层数
# sys.setrecursionlimit()  设置递归深度
"""setrecursionlimit(n)

Set the maximum depth of the Python interpreter stack to n.  Thislimit prevents infinite recursion from causing an overflow of the Cstack and crashing Python.  The highest possible limit is platform-dependent."""
 

# def age(n):
#     if n == 1:
#         return 18
#     return age(n-1) + 2
# print(age(5))

递归实例1

# 递归打印list中子元素不包含list的元素
# l1 = [1, [2, [3, [4, [5, [6]]]]]]
# def func(l):
#     for n in l:
#         if type(n) is list:
#             func(n)
#         else:
#             print(n)
#
# func(l1)

递归实例2

# 递归总结# 1、必须有一个明确的结束条件# 2、每次进入更深一层递归时,问题规模比上次递归应所有减少# 3、递归效率不高

递归函数与三级菜单

menu = {'北京': {'海淀': {'五道口': {'soho': {},'网易': {},'google': {}},'中关村': {'爱奇艺': {},'汽车之家': {},'youku': {},},'上地': {'百度': {},},},'昌平': {'沙河': {'老男孩': {},'北航': {},},'天通苑': {},'回龙观': {},},'朝阳': {},'东城': {},},'上海': {'闵行': {"人民广场": {'炸鸡店': {}}},'闸北': {'火车战': {'携程': {}}},'浦东': {},},'山东': {},
}menu

View Code

递归实现三级菜单

l = [menu]
while l:for key in l[-1]:print(key)k = input('input>>').strip()   # 北京if k in l[-1].keys() and l[-1][k]:l.append(l[-1][k])elif k == 'b':l.pop()elif k == 'q':break

转载于:https://www.cnblogs.com/zh-lei/p/8961657.html

内置函数、匿名函数,递归函数相关推荐

  1. python学习日记(内置、匿名函数练习题)

    用map来处理字符串列表 用map来处理字符串列表,把列表中所有水果都变成juice,比方apple_juice fruits=['apple','orange','mango','watermelo ...

  2. python笔记4 内置函数,匿名函数.递归函数 面向对象(基础, 组合,继承)

    内置函数 eval和exec eval :执行字符串中的代码并将结果返回给执行者,有返回值 exec:执行字符串中的代码,往往用于执行流程语句,没有返回值. s1 = '1+2' s2 = 'prin ...

  3. Python中匿名函数与内置高阶函数详解

    大家好,从今天起早起Python将持续更新由小甜同学从 初学者的角度 学习Python的笔记,其特点就是全文大多由 新手易理解 的 代码与注释及动态演示 .刚入门的读者千万不要错过! 很多人学习pyt ...

  4. 内置函数 ,匿名函数

    python之内置函数,匿名函数 内置函数 我们一起来看看python里的内置函数.什么是内置函数?就是Python给你提供的,拿来直接用的函数,比如print,input等等.截止到python版本 ...

  5. 内置函数 匿名函数 eval exec execute compile sorted map filter等常见函数 repr chr ord...

    内置函数 什么是内置函数? 就是python给你提供的. 拿来直接用的函数, 比如print., input等等. 截⽌止 到python版本3.6.2 python⼀共提供了了68个内置函数. 他们 ...

  6. python中的内置高阶函数

    一. 内置高阶函数的类型 (一).内置高阶函数map """ map():接收两个参数,一个是函数 一个是序列 map将传入的函数依次作用到序列的每个元素,并且把结果作为 ...

  7. JS(内置对象,全局函数,事件,事件对象)

    目录 内置对象 全局函数 事件 事件对象 内置对象 <!DOCTYPE html> <html><head><meta charset="utf-8 ...

  8. python内置数字类型转换函数_Python学习 Day2-2 Python3的基本数据类型、数据内置类型转换函数...

    Python3的基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型& ...

  9. 【Kotlin】Kotlin 函数总结 ( 具名函数 | 匿名函数 | Lambda 表达式 | 闭包 | 内联函数 | 函数引用 )

    文章目录 一.函数头声明 二.函数参数 1.默认参数值 2.具名参数 三.Unit 函数 四.TODO 函数抛出异常返回 Nothing 类型 五.反引号函数名 六.匿名函数 七.匿名函数的函数类型 ...

  10. CAPL内置的时间函数

    CAPL内置的时间函数 在CAPL中我们要经常和时间打交道,为了方便的写CAPL脚本,所以我整理了Vector官方提供的与时间有关的函数,并对常用的进行简单说明. 本文主体部分摘录了Vector的官方 ...

最新文章

  1. 32位计算机能玩什么游戏,系统32位操作能玩什么游戏?
  2. jetspeed 安装及数据库配置
  3. Python 代码性能优化技巧
  4. AngularDart Material Design 步进器
  5. The 2019 ICPC Asia Shanghai Regional Contest
  6. python多进程并发代码_Python并发编程系列之多进程(multiprocessing)
  7. 折腾kali linux2.0
  8. python中tensor与variable_TensorFlow中Variable和get_variable之间的区别
  9. Error:java: Compilation failed: internal java compiler error or source 1.5 提升版本
  10. 最近运气不好。很不爽!!!!!
  11. java linklist6_Java基础知识点总结--从细节再看Java(六)--List及LinkedList
  12. U盘制作“奶瓶”破解无线WPE\WPA\WPA2 密码教程
  13. 偏微分方程数值解法python_微分方程数值方法和偏微分方程有什么区别吗?
  14. Nitrux 图标主题与 Faenza 一样的设计 – 漂亮
  15. GoogleAdMob 广告接入
  16. centos7.6安装lnmp环境
  17. github注册,使用方法
  18. imx6ul can调试(代码)
  19. mysql 去掉前面的0_去掉前面的0的sql语句(前导零,零前缀)
  20. 苏格兰研发成功新型治疗结核病药物

热门文章

  1. 历史性胜利!纽约曼哈顿充电站数量超过加油站
  2. 解决删除从表,主表存在外键的问题
  3. MySQL数据库服务器逐渐变慢 该如何分析与解决
  4. centos 和trunk端口连接如何创建vlan
  5. VB100年底测试:McAfee金山遗憾出局 瑞星表现令人意外
  6. word文档插入行号
  7. 厌倦了SWT TABLE,何不试试KTABLE?
  8. what if you can not achieve them on a list
  9. 怎么用latex写ppt呢?
  10. UE4材质:纯数学算法实现水面水波扩散效果