Python基础——3特性
特性
切片
L=[0,1,2,3,4,5,6,7,8,9,10]
L[:3]=[0,1,2]
L[-2:]=[9,10]
L[1:3]=[1,2]
L[::3]=[0,3,6,9]
L[:5:2]=[0,2,4]
>>> alist = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> alist[-1: -5: -1]
[9, 8, 7, 6]
>>> alist[9: 5: -1]
[9, 8, 7, 6]
>>> alist[-1::-1]
[9, 8, 7, 6, 5, 4, 3, 2,1,0]
>>> alist[6:-8:-1]
[6, 5, 4, 3]
列表生成式
例如:生成一个1,2,3 …… 的平方的List,用列表生成式就很方便
[x*x for x in range(1:n)]
还可以添加条件筛选
[x*x for x in range(1:n) if x%2 ==]
可以生成全队列
[x+y for x in ‘AB’ for y in ‘CD’]
[‘AC’,’AD’,’BC’,’BD’]
dict用于行列生成式
>>> d = {'x': 'A', 'y': 'B', 'z': 'C' }
>>> [k + '=' + v for k, v in d.items()]
['y=B', 'x=A', 'z=C']
列表生成器
由于当列表生成式生成大量数据时会占用大量的内存,所以如果列表的元素可以通过一边循环一边计算出来,可以节省大量的空间,这种一边循环一边计算的方式成为生成器:generator
g = (x*x for x in [1,2,3,4,5,6,7,8,9]) #定义一个生成器
next(g) 1
next(g) 4
…..
因为生成器也是可迭代对象,所以可以用for n in g print(n)读取生成器数据
例子:斐波拉契数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到 1,1,2,3,5,8,13,21,34…
def fei(n)
a,b = 0,1
while n:
yield b
a,b = b,a+b
n = n-1
return ‘done’
其中yield是关键字,可以把定义的函数变成一个generator,这里最难理解的就是generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。
f = fei(6)
next (f) 1
next(f) 1
或者for x in fib(6)
print(x)
但是用for循环调用generator时,发现拿不到generator的return语句的返回值。如果想要拿到返回值,必须捕获StopIteration错误,返回值包含在StopIteration的value中:
>>> g = fib(6)
>>> while True:
... try:
... x = next(g)
... print('g:', x)
... except StopIteration as e:
... print('Generator return value:', e.value)
... break
...
g: 1
g: 1
g: 2
g: 3
g: 5
g: 8
Generator return value: done
例子

def yang ()
L = [1]
while True
yield L
L = [1] + [L[i]+L[i+1] for i in range(len(L)-1)] + [1]
Python基础——3特性的更多相关文章
- python基础——高级特性
1.切片 切片: >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] >>> L[:3] ['Michael ...
- python基础——特性(property)、静态方法(staticmethod)和类方法(classmethod)
python基础--特性(property) 1 什么是特性property property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值 import math class Circl ...
- Python 基础 面向对象之二 三大特性
Python 基础 面向对象之二 三大特性 上一篇主要介绍了Python中,面向对象的类和对象的定义及实例的简单应用,本篇继续接着上篇来谈,在这一篇中我们重点要谈及的内容有:Python 类的成员.成 ...
- python基础--面向对象基础(类与对象、对象之间的交互和组合、面向对象的命名空间、面向对象的三大特性等)
python基础--面向对象 (1)面向过程VS面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. ...
- Python之路3【第一篇】Python基础
本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...
- python基础之循环结构以及列表
python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.python IDE的选择 IDE的全称叫做集成 ...
- Python基础+Pythonweb+Python扩展+Python选修四大专题 超强麦子学院Python35G视频教程
[保持在百度网盘中的, 可以在观看,嘿嘿 内容有点多,要想下载, 回复后就可以查看下载地址,资源收集不易,请好好珍惜] 下载地址:http://www.fu83.cc/ 感觉文章好,可以小手一抖 -- ...
- python基础知识(二)
以下内容,作为python基础知识的补充,主要涉及基础数据类型的创建及特性,以及新数据类型Bytes类型的引入介绍
- Python基础s14-day1
2016年7月23日"Python基础s14-Day1" Python是什么? Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种面向对象.直译式 ...
随机推荐
- JVM基础系列第1讲:Java 语言的前世今生
Java 语言是一门存在了 20 多年的语言,其年纪比我自己还大.虽然存在了这么长时间,但 Java 至今都是最大的工业级语言,许多大型互联网公司均采用 Java 来实现其业务系统.大到国际电商巨头阿 ...
- 《你必须知道的.NET》读书实践:一个基于OO的万能加载器的实现
此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.关于万能加载器 简而言之,就是孝顺的小王想开发一个万能程序,可以一键式打开常见的计算机资料,例如: ...
- Quartz.NET学习笔记(四) 计划任务触发器
通常来说计划任务触发器会比简单触发器的使用频率高很多.如果你的任务是需要基于日历每天定时运行,那你就应该使用计划任务触发器,例如每周五中午12:00执行任务,或者每天早上9点执行任务. 计划任务表达式 ...
- Spring Boot2.0 静态资源被拦截问题
在Spring Boot2.0+的版本中,只要用户自定义了拦截器,则静态资源会被拦截.但是在spring1.0+的版本中,是不会拦截静态资源的. 因此,在使用Spring Boot2.0+时,配置拦截 ...
- Spring AOP中的JDK和CGLib动态代理哪个效率更高?
一.背景 今天有小伙伴面试的时候被问到:Spring AOP中JDK 和 CGLib动态代理哪个效率更高? 二.基本概念 首先,我们知道Spring AOP的底层实现有两种方式:一种是JDK动态代理, ...
- (摘)sql-索引的作用(超详细)
(一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引)和非聚集索引(nonc ...
- linux下tomcat启动很慢的解决办法
1.用vim编辑器打开tomcat的bin目录下的catalina.sh [root@iz09a32x1sghz3z bin]# vi /usr/local/src/java/tomcats/tomc ...
- FaaS技术框架
FaaS介绍 微服务(MicroService)是以专注于单一服务/功能的小型单元块为基础,利用模块化的方式组合成复杂的大型应用服务. FaaS是Function as a Service的缩写,可以 ...
- TSP(Traveling Salesman Problem)-----浅谈旅行商问题(动态规划,回溯实现)
1.什么是TSP问题 一个售货员必须访问n个城市,这n个城市是一个完全图,售货员需要恰好访问所有城市的一次,并且回到最终的城市. 城市于城市之间有一个旅行费用,售货员希望旅行费用之和最少. 完全图:完 ...
- 手机端两端对齐,兼容ios,安卓
.div-title p label{ text-align: justify; width: 18%; display: inline-block; text-align-last: justify ...