一、切片
list、tuple常常截取某一段元素,截取某一段元素的操作很常用 ,所以python提供了切片功能。
1 | L=['a','b','c','d','e','f'] |
二、迭代
除了list、tuple可以迭代外,python中的dict类型变量也可以迭代。
1 | dictor = {'name':'Jul','age':17,'femail':1} |
可以将list变为索引元素对的形式
1 | for x,y in [(1,2),(3,4),(5,6)]: |
三、列表生成式
list函数可以将一组对象组合为列表,[]操作也可以。[]操作的方式称作列表生成式
print([x for x in range(1,11)])
print(list(range(1,11)))
在列表生成式中可以加入一些运算规则,使生成的列表具备运算规则。
1 | #变为索引元素对 |
四、生成器
python提供生成器的功能,生成器根据函数或运算规则产生一系列数据,
通过对返回值g调用next(g)可以依次取出生成的数据。
1 | g = (x*2 for x in range(1,11)) |
可以一直调用next(g),直到产生StopIteration异常。
当然也可以通过函数构造生成器,将函数return的关键字换为yield即可。
1 | #菲波那切数列 |
通过下面方式next取出数列中的元素,第三次调用会抛出StopIteration异常。
1 | g=fib(2) |
上面代码中g为迭代器,通过对g不断调用next取出数列中元素。
可以通过检测异常的方式完成遍历,避免程序崩溃。
1 | g2 = fib(6) |
可以用生成器实现杨辉三角,生成器函数为triangles()。
生成器函数triangles()实现如下:
1 | def triangles(): |
五、迭代器
python提供生成器的功能,生成器根据函数或运算规则产生一系列数据,
通过对返回值g调用next(g)可以依次取出生成的数据。g就是迭代器。
有的对象可以迭代但是不是迭代器,只有可以被next调用的对象才是迭代器。
同样可以通过isinstance函数判断迭代器。
1 | from collections.abc import Iterable |