Python3 迭代器与生成器学习笔记

1. 迭代器

在Python中,迭代器是一个可以进行迭代操作的对象。它具有两个基本方法:__iter__()__next__()

1.1 迭代器的创建

迭代器可以通过集合对象来创建,如列表、元组、字典、集合等,只需将其传递给iter()函数即可。

示例代码1:

pythonCopy Code
my_list = [1, 2, 3, 4] my_iter = iter(my_list) print(next(my_iter)) # 输出1 print(next(my_iter)) # 输出2 print(next(my_iter)) # 输出3 print(next(my_iter)) # 输出4

1.2 迭代器的应用

迭代器可以用于循环遍历集合中的每一个元素。当所有元素都被迭代后,迭代器会抛出StopIteration异常,表示迭代完成。

示例代码2:

pythonCopy Code
for i in iter(my_list): print(i)

1.3 迭代器的优势

相较于传统的遍历方式,使用迭代器可以更加节省内存空间,大大降低了程序的内存占用率,提高了程序的效率。

2. 生成器

生成器是一种特殊的迭代器,它可以动态地生成一系列的值,而无需将这些值全部预先存储在内存中。

2.1 生成器的创建

生成器可以通过函数来创建,使用yield关键字可以将一个函数变成一个生成器。

示例代码3:

pythonCopy Code
def my_generator(): yield 1 yield 2 yield 3 yield 4 for i in my_generator(): print(i)

2.2 生成器的应用

生成器可以用于动态地生成一系列值,这些值可以是一些比较庞大的数据,如一些网络请求的数据,文件等等。

示例代码4:

pythonCopy Code
import requests def my_generator(): response = requests.get('https://jsonplaceholder.typicode.com/posts') for item in response.json(): yield item['title'] for title in my_generator(): print(title)

结论

Python中的迭代器和生成器是非常强大的工具,它们可以帮助我们更加高效地处理大量的数据,提高程序的运行效率。