您的位置:首页 > 编程语言 > Python开发

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