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

Python笔记3——切片,迭代,列表生成式,生成器

2017-06-23 10:25 597 查看
1.切片:list,tuple,字符串‘xxx’,Unicode字符串u'xxx'都可进行切片操作,并且也支持倒数切片,支持三个参数的‘每隔n个数’切片。

2.迭代:用for循环来遍历给定的list或tuple,这种遍历称为迭代(Iteration),Python中的迭代用for...in来完成。

3.list,tuple,dict,str都可进行迭代。默认情况下,dict迭代的是key。如果要迭代value,可以用 for value in d.itervalues() ,如果要同时迭代key和value,可以用 for k,v in d.iteritems() 。

4.collections模块的Iterable类型,可以判断一个对象是否为迭代对象.(from collections import Iterable/isinstance(123,Iterable)  #整数是否可迭代? 返回False)

5.enumerate()函数可以把一个list变成索引-元素对,使得for循环中可以同时迭代索引和元素本身(for i,value in enumrate(['A','B','C']):  ......)

6.列表生成式:
即Python内置的简单却强大的用于创建list的生成式。
[x * x for x in range(1, 11)]
[x * x for x in range(1, 11) if x % 2 == 0]  if判断,取偶数的平方
[m + n for m in 'ABC' for n in 'XYZ']  两层循环,生成全排列

7.lower()方法可以把字符串变为小写。把列表L中的字符串都转换为小写:
[s.lower() for s in L]

8.Python内建函数isinstance可以判断一个变量是不是字符串    isinstance(x, str)
9.生成器:受到内存限制,列表的容量有限,列表内的数据级别要是很大,占用的存储空间也很大。如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器(Generator)。

10.生成器创建方法:
一、只要把一个列表生成式的 [] 改成 () ,就创建了一个generator.
二、如果一个函数定义中包含 yield 关键字(将函数中的print改成yield),那么这个函数就不再是一个普通函数,而是一个generator.

11.注意:generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用 next() 的时候执行,遇到 yield 语句返回,再次执行时从上次返回的 yield 语句处继续执行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐