Python学习笔记之python高级特性

/ 0评 / 0

切片

l = [1,2,3,4,5,6]
正向切片:l[0:3],l[:3],不包括3
倒数切片:l[-2:-1],不包括-1
隔N取1:l[0:10:2],隔2个取1个

迭代

dict默认迭代的是key
判断是否可迭代:isinstance("abc", Iterable)
for key in dict():
使用enumerate可以把list变成索引-元素对
for i, value in enumerate(list):

列表生成式

d_list = [d for d in os.listdir(".")]
[x*x for x in range(1, 11) if x % 2 == 0]

生成器

惰性计算
创建generator,列表元素不断推断出来,使用next()

g=(x*x for x in range(1, 11))
for value in g:
    print(value)

如果一个函数包含yield,那么这个函数就是一个generator,遇到yield返回,再次执行时从上次返回的yield语句处继续执行

迭代器

iter()
是否是迭代器:isinstance(iter([]), Iterator) True
凡是可作用于for循环的对象都是Iterable类型
凡是可作用于next()函数的对象都是Iterator类型