python高级特性

切片
[::2]
作用于list,tuple,String等字符串,获取部分字段。

迭代
如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration),迭代是通过for ... in来完成的
判断一个对象是可迭代对象:isinstance('a',Iteration)
for x,y in [(1,1),(2,4),(3,9)]:
print(x,y)

列表生成式
Python内置的非常简单却强大的可以用来创建list的生成式
[int(m)+x for m in 'ABC' for x in range(1,11) if x %2==0]

生成器
列表元素可以按照某种算法推算出来,不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。
创建方法:
1.只要把一个列表生成式的[]改成(),就创建了一个generator
g = (x * x for x in range(10))
next(g)计算出g的下一个元素的值
for n in g:
print(n)
2.如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator
def fib(max):
n,a,b=0,0,1
while n<max:
yield b
a,b=b,a+b
n=n+1
return 'done'

迭代器
可以直接作用于for循环的对象统称为可迭代对象:Iterable。
isinstance([], Iterable)
可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator
可以使用isinstance()判断一个对象是否是Iterator对象
生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。把list、dict、str等Iterable变成Iterator可以使用iter()函数
isinstance(iter([]),Iterator)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值