高级特性

切片:前10个数,每两个取一个: L[:10:2]:[0, 2, 4, 6, 8]
可迭代对象的判断: isinstance('abc', Iterable)
list变成索引-元素对:for i, value in enumerate(['A', 'B', 'C']):print(i, value)
列表生成式:一行语句生成list:[x * x for x in range(1, 11)] 生成器:一边循环一边计算的机制,称为生成器:generator。
第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator:g = (x * x for x in range(10))
另一种方法。如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator:
f = fib(6)
f
<generator object fib at 0x104feaaa0>

定义默认参数要牢记一点:默认参数必须指向不变对象!
Python函数在定义的时候,默认参数L的值就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了。
Python函数返回值是单一值,元组

函数式编程

list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
reduce(fn, map(char2num, '13579'))
13579
reduce(lambda x, y: x * 10 + y, map(char2num, s))
list(filter(not_empty, ['A', '', 'B', None, 'C', ' ']))
sorted([36, 5, -12, 9, -21], key=abs)
sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reve rse=True)

函数作为返回值
返回闭包时牢记一点:返回函数不要引用任何循环变量,或者后续会发生变化的变量。

匿名函数:list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
装饰器:含有参数装饰器

def log(text):def decorator(func):def wrapper(*args, **kw):print('%s %s():' % (text, func.__name__))return func(*args, **kw)return wrapperreturn decorator

python笔记01_高级特性和函数式编程相关推荐

  1. python 的高级特性:函数式编程,lambda表达式,装饰器

    一.Python语言的高级特性 函数式编程 基于Lambda演算的一种编程方式 程序中只有函数 函数可以作为参数,同样可以作为返回值 纯函数式编程语言:LISP,Haaskell Python函数式编 ...

  2. 【廖雪峰python总结】python高级特性,函数式编程,面向对象编程,面向对象高级编程

    文章目录 python复习总结 python高级特性 函数式编程 面向对象编程 面向对象高级编程 python复习总结 python高级特性 python高级特性 函数式编程 函数式编程 函数式编程的 ...

  3. Python中的匿名函数和函数式编程

    Python中的匿名函数和函数式编程 文章目录 Python中的匿名函数和函数式编程 一.匿名函数 匿名函数的格式: 二.函数式编程 map() filter() reduce() 区别 三.'三目运 ...

  4. python里面的高级特性

    python里面的高级特性 1.切片(Slice) >>> L[0:3] ['Michael', 'Sarah', 'Tracy'] L[0:3]表示,从索引0开始取,直到索引3为止 ...

  5. 廖雪峰python学习笔记之高级特性

    写在前面 寒假时本科舍友的一句话点醒梦中人-你的python基础还没弄明白吧!猛地一想好像确实如此,还停留在随插随用的程度,并且对于迭代器,函数式编程等等,没有深刻理解,所以项目做起来也是空中楼阁,所 ...

  6. Python学习笔记:高级特性

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. python函数式编程思想_以python为例,浅谈函数式编程思想

    引 数据集data_socrestudentid course score 1 math 89 2 english 76 . . . 问题:求各studentid总分 方法1-一般写法: studen ...

  8. python从入门到走火入魔_Python 函数式编程:从入门到走火入魔

    很多人都在谈论函数式编程(Functional Programming),只是很多人站在不同的角度看到的是完全不一样的风景.坚持实用主义的 Python 老司机们对待 FP 的态度应该更加包容,虽然他 ...

  9. python从入门到走火入魔_Python函数式编程:从入门到走火入魔

    函数式编程源自于数学理论,它似乎也更适用于数学计算相关的场景,因此本文以一个简单的数据处理问题为例,逐步介绍 Python 函数式编程从入门到走火入魔的过程. 很多人都在谈论函数式编程(Functio ...

最新文章

  1. 数字人民币实现可控匿名交易?产业升级离不开安全可信的“数字底座”
  2. 介绍一个很好用的Rsa加解密的.Net库 Kalix.ApiCrypto
  3. Sql Server实用操作-动态sql语句基本语法
  4. Markdown 如何实现空行、空格?
  5. 科技计划项目数据管理过程模型
  6. [转]python3_unboundlocalerror报错原因
  7. flutter 打开后闪退_vscode 扩展 pubspec 依赖快速打开文档
  8. DEL: 扁桃体发炎兼嗓子哑治疗药品
  9. Go - 学习/实践
  10. 北京科技大学 工科物理实验 大二下
  11. H264视频编码原理
  12. 8uftp怎么使用,小编教你8uftp怎么使用
  13. 15个提高编程技巧的JavaScript工具
  14. Linux初级入门百篇-lsof工具
  15. JAVANBA论坛系统计算机毕业设计Mybatis+系统+数据库+调试部署
  16. jquery.seat-charts.1.1.15 选座座位插件的方法介绍
  17. caniuse_使用此工具将CanIUse表嵌入到您的网站中
  18. java高级计算器_高级计算器[Java版]
  19. SpringCloud Stream+RabbitMQ自定义通道
  20. 实验改变人类:震撼世界的十大科学实验- -

热门文章

  1. sql server 架构_在SQL Server中引入架构文档
  2. osql sql2012_您可能不知道SQL Server实用程序-SQLdiag,osql和SqlLocalDB
  3. 如何使用SQL Server Reporting Services创建图像分类系统
  4. linux配置部署nginx
  5. 怎么在jquery里清空文本框的内容
  6. [CodePlus2017]晨跑
  7. 王立平--android事件监听的3种方式
  8. 图片--Android加载图片导致内存溢出(Out of Memory异常)
  9. Animator忽视TimeScale
  10. java Excel导出 xlsx格式(超简单)