2017.6.20 python 高级特性总结
2017-06-20 10:40
393 查看
切片
定义一个集合L = [1,2,3,4,5,67,8,9]
1.获取集合的前三个元素
简单的方式:L[0],L[1],L[2]
利用切片:L[0:3]// 当从0开始获取,0可以省略不写L[:3]
2.获取集合的第三个元素到第六个元素
L[3:6]# 改表达式的含义是获取L[3],L[4],L[5]注意观察
3.获取最后3个元素
L[-3:]
4.获取从倒数第二个到倒数第四个元素
L[-4:-2]
5.没每两个获取一个
L[::2]
6.每三个元素获取一个
L[3:1]
7.原样复制一个list
L[:]# 什么都不写,可以原样复制一个list
切片
迭代:iteration.通过for循环进行的遍历,这种遍历称之为迭代list/dict/set/tuple/str… 都是可迭代对象
判断一个对象是否可迭代
fromcollections import Iterable
isinstance(‘abc’,Iterable)
isinstance():该方法传递一个对象,传递一个数据类型,如果该对象和数据类型相同,或者该对象的数据类型是传递进去的数据类型的子类,该方法返回True
list集合输出元素和索引
list集合想像java那样,同时输出元素和索引,python提供了内置的enumerate函数,可以把list变成索引-元素
例: for key,value in enumerate(L)
print(key,value)
列表生成式
1.生成一个[1,2,3,4,5,6,7,8,9]这样的集合列表生成式:[x for x in range(1,10)]
2.生成一个[1*1,2*2,3*3,4*4,5*5,6*6,7*7,8*8,9*9]这样的集合
[x*x for x in range(1,10)]
3. 生成一个1到100的偶数集合
[x for x in range(1,100) if x%2 == 0]
4.随手小例子
L = [‘%s*%s=%s’ %(x,y,x*y) for x in range(1,10) if x%2 ==0 for y in range(1,10) if y%2 != 0]
print(L)
L = [‘%s*%s=%s’ %(x,y,x*y) for x,y in enumerate(range(1,10)) if x%2 ==0 ]
print(L)
生成器
生成式好列表生成式的区别:1.列表生成式是[],生成器是()
2.生成式返回的是具体的,生成器返回的函数
1.定义一个列表生成器,并获取值
定义:g = (x for x in range(1,10))
取值:通过next(g)每次取出下一个元素,直到取出最后一个元素,没有更多的元素的时候抛出StopIteration的错误;因为生成器也是一个可迭代的对象,所以可以通过for循环的方法去遍历
在生成器中还有一个yield 关键字,本人理解有限,就不在描述了
迭代器
在上边的list集合中就有描述,在这里就不在详细描述了相关文章推荐
- python总结——高级特性
- .NET高级特性总结之“委托”
- JDBC第三章知识点总结——JDBC高级特性1--结果集,批量更新,高级数据类型
- Python高级特性(1):Iterators、Generators和itertools(转)
- Python的高级特性之切片、迭代、列表生成式、生成器
- Python高级特性之:List Comprehensions、Generator、Dictionary and set comprehensions
- 宏汇编有专门的介绍书本,这里介绍宏的通用特性,(宏的高级特性总结)
- Python_高级特性
- Python高级特性(1):Iterators、Generators和itertools
- JDBC第四章知识点总结——JDBC高级特性2--事务,并发控制,行集
- 从0开始学quantum之1:Python高级特性--装饰器
- java的一些高级特性总结
- Python高级特性(2):Closures、Decorators和functools
- Python高级特性
- 深入理解Java虚拟机(JVM高级特性与最佳实践java虚拟机)的一些知识总结
- matplotlib python高级绘图库 一周总结
- JAVA高级特性总结
- Python高级特性(3): Classes和Metaclasses(转)
- python 高级特性