切片:
取list和tuple的部分元素
L=[‘tian’,’song’,’tao’,’bob’,’jack’]
一般为[L[0],L[1],L[2]]取前3个元素。或者是循环取出
这种经常取指定索引范围的操作,可以用切片操作:
L[0:3] -----0开始到3为止,不包括3
L[-2]--从反方向同样可以取,从-1开始不包括-2
L[10:20] 前11-20个数
L[1:10:2]前1--10每过两个取一个
L[::5]所有数每5个取一个,
迭代:
python中通过for…in来完成迭代,在python中很多其它数据类型没有
下标,但只要是可迭代对象,无论有没有下标,都科技迭代,eg dict
迭代之前看是否能够迭代,可以用collections模块的iterable类型判断
eg: from collections import Iterable
isinstance(‘abc’,Iterable)——true
isinstance(123,Iterable)——false
列表生成式:List Comprehensions是python内置的用来创建list的生成式
list[1,2,3,4,5,6,7,8,9,10]可以用list(range(1,11))
但如果[1*1,2*2,3*3]—–[x*x for x in range(1,11)]
for循环后面还可以加上if判断,这样就可以筛选
eg:[x*x for x in range(1,11) if x%2==0]
还可以使用两层循环,可以生成全排列:
[m+n for m in ‘ABC’ for n in ‘XYZ’]
[‘AX’,’AY’,’AZ’,,,,,’CX’,’CY’,”CZ”]
生成器:内存限制,不能创建的列表过多,
这里可以按照算法把后续元素推算出来,一边循环一边计算产生即生成器generator
l=[x*x for in range(10)]
g=(x*x for in range(10))
l和g区别只是最外层()[] l是一个list,g是一个生成器
eg:next(g)=0
next(g)=1 next(g)=4 每次调用next(g)都会计算下一个数;