一、迭代
- python中可以用for循环使用取值操作过程。
- 比如在 Python 中,给定一个 list 或 tuple,我们可以通过 for 循环来遍历这个 list 或 tuple ,这种遍历就是迭代。
二、可迭代对象(iterable)
- 可以使用for循环遍历的对象,我们称之为可迭代对象
- 可迭代对象有以下几种:
1.字符串
for char in 'test' :
print ( char , end = ' ' )
2.列表
list1 = [1,2,3,4,5]
for num1 in list1 :
print ( num1 , end = ' ' )
3.字典
dict1 = {'name':'hqhqhq','age':'25','sex':'男'}
for key in dict1:
print(key, end=' ')
for value in dict1.values():
print(value, end=' ')
4.元组(同列表)
三、迭代器(itertor)
- 迭代器是一个可以记住遍历的位置的对象。
- 迭代器对象从集合的第一个元素开始访问数据,直到所有数据访问结束
- 迭代器只能往前不会后退
- 迭代器有两个基本函数iter()和next()
- 列表或元组对象都可用于创建迭代器,迭代器对象可以使用常规 for 语句进行遍历,也可以使用 next() 函数来遍历。
- 在 Python 中, for 用来实现迭代,它的结构是 for ... in ...,其在迭代时会产生迭代器,实际是将可迭代对象转换成迭代器,再重复调用 next() 方法实现的。
例如:
i = [1,2,3,4,5]
it = iter(i)
print(it.__next__())
print(it.__next__())
print(it.__next__())
print(it.__next__())
print(it.__next__())
再如:
it = iter([1, 2, 3, 4, 5])
while True:
try:
i = next(it)
print(i)
except StopIteration:
break
四、Python内置模块itertools
五、生成器(generator)
- 生成器(generator)是一个特殊的迭代器
- 如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator。
- 在执行过程中,遇到yield就中断,下次又继续执行。
- 生成器生成大量数据的时候可帮助系统节省内存