python笔记01_高级特性和函数式编程
高级特性
切片:前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_高级特性和函数式编程相关推荐
- python 的高级特性:函数式编程,lambda表达式,装饰器
一.Python语言的高级特性 函数式编程 基于Lambda演算的一种编程方式 程序中只有函数 函数可以作为参数,同样可以作为返回值 纯函数式编程语言:LISP,Haaskell Python函数式编 ...
- 【廖雪峰python总结】python高级特性,函数式编程,面向对象编程,面向对象高级编程
文章目录 python复习总结 python高级特性 函数式编程 面向对象编程 面向对象高级编程 python复习总结 python高级特性 python高级特性 函数式编程 函数式编程 函数式编程的 ...
- Python中的匿名函数和函数式编程
Python中的匿名函数和函数式编程 文章目录 Python中的匿名函数和函数式编程 一.匿名函数 匿名函数的格式: 二.函数式编程 map() filter() reduce() 区别 三.'三目运 ...
- python里面的高级特性
python里面的高级特性 1.切片(Slice) >>> L[0:3] ['Michael', 'Sarah', 'Tracy'] L[0:3]表示,从索引0开始取,直到索引3为止 ...
- 廖雪峰python学习笔记之高级特性
写在前面 寒假时本科舍友的一句话点醒梦中人-你的python基础还没弄明白吧!猛地一想好像确实如此,还停留在随插随用的程度,并且对于迭代器,函数式编程等等,没有深刻理解,所以项目做起来也是空中楼阁,所 ...
- Python学习笔记:高级特性
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- python函数式编程思想_以python为例,浅谈函数式编程思想
引 数据集data_socrestudentid course score 1 math 89 2 english 76 . . . 问题:求各studentid总分 方法1-一般写法: studen ...
- python从入门到走火入魔_Python 函数式编程:从入门到走火入魔
很多人都在谈论函数式编程(Functional Programming),只是很多人站在不同的角度看到的是完全不一样的风景.坚持实用主义的 Python 老司机们对待 FP 的态度应该更加包容,虽然他 ...
- python从入门到走火入魔_Python函数式编程:从入门到走火入魔
函数式编程源自于数学理论,它似乎也更适用于数学计算相关的场景,因此本文以一个简单的数据处理问题为例,逐步介绍 Python 函数式编程从入门到走火入魔的过程. 很多人都在谈论函数式编程(Functio ...
最新文章
- 数字人民币实现可控匿名交易?产业升级离不开安全可信的“数字底座”
- 介绍一个很好用的Rsa加解密的.Net库 Kalix.ApiCrypto
- Sql Server实用操作-动态sql语句基本语法
- Markdown 如何实现空行、空格?
- 科技计划项目数据管理过程模型
- [转]python3_unboundlocalerror报错原因
- flutter 打开后闪退_vscode 扩展 pubspec 依赖快速打开文档
- DEL: 扁桃体发炎兼嗓子哑治疗药品
- Go - 学习/实践
- 北京科技大学 工科物理实验 大二下
- H264视频编码原理
- 8uftp怎么使用,小编教你8uftp怎么使用
- 15个提高编程技巧的JavaScript工具
- Linux初级入门百篇-lsof工具
- JAVANBA论坛系统计算机毕业设计Mybatis+系统+数据库+调试部署
- jquery.seat-charts.1.1.15 选座座位插件的方法介绍
- caniuse_使用此工具将CanIUse表嵌入到您的网站中
- java高级计算器_高级计算器[Java版]
- SpringCloud Stream+RabbitMQ自定义通道
- 实验改变人类:震撼世界的十大科学实验- -
热门文章
- sql server 架构_在SQL Server中引入架构文档
- osql sql2012_您可能不知道SQL Server实用程序-SQLdiag,osql和SqlLocalDB
- 如何使用SQL Server Reporting Services创建图像分类系统
- linux配置部署nginx
- 怎么在jquery里清空文本框的内容
- [CodePlus2017]晨跑
- 王立平--android事件监听的3种方式
- 图片--Android加载图片导致内存溢出(Out of Memory异常)
- Animator忽视TimeScale
- java Excel导出 xlsx格式(超简单)