1. 切片
Python提供了切片(Slice)操作符,常用来取一个list或者tuple的部分元素。有了切片,就可以用一行代码代替多行循环了。
1 | list(range(10)) L = |
2. 迭代
迭代(Iteration),我们一般用for循环来遍历一个list或者tuple,这种遍历我们称为迭代。只要是可迭代对象即可迭代。
1 | ##如何判断是否为可迭代对象 |
2.1. 迭代list
1 | 'a','b','c','d','e','f'] L = [ |
2.2. 迭代dict
1 | d = {'a': 1, 'b': 2, 'c': 3} |
2.3. 迭代str
1 | >>>for i in 'abcdef': |
3. 列表生成式
列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。
1 | # x*x:要生成的元素写在前面; 后面直接跟for循环. |
3.1. For循环后面跟if判断
1 | # if在for循环之后不能带else,因为在这里代表筛选条件 |
3.2. 两层for循环; 很少用到三层及以上的循环
1 | # 生成全排列 |
3.3. For循环可以同时使用两个变量
1 | 'x': '1', 'y': '2', 'z': '3'} d = { |
4. 生成器
受到内存的限制,创建列表的容量是有限的,而且如果仅用到列表前几个元素,那么就白白浪费了空间。生成器(generator),是储存了列表元素的算法,形成了一边循环一边计算的机制,从而节省了空间。
4.1. 方法一
1 | # 将列表生成式的[]改为() |
4.2. 方法二: yield语句
1 | # 不使用生成器, 则先生成List, 后打印List |
5. 迭代器
5.1. Iterable 对象(列表、字典、字符串、生成器)
1 | from collections.abc import Iterable |
5.2. Iterator: 迭代器 - 可以被next()函数调用并不断返回下一个值的对象
1 | # Iterator计算是惰性的,只有需要返回下一个数据时才计算。而且只能遍历一次。 |