Python3 迭代器与生成器学习笔记
1. 迭代器
在Python中,迭代器是一个可以进行迭代操作的对象。它具有两个基本方法:__iter__()
和__next__()
。
1.1 迭代器的创建
迭代器可以通过集合对象来创建,如列表、元组、字典、集合等,只需将其传递给iter()
函数即可。
示例代码1:
pythonCopy Codemy_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 Codefor i in iter(my_list):
print(i)
1.3 迭代器的优势
相较于传统的遍历方式,使用迭代器可以更加节省内存空间,大大降低了程序的内存占用率,提高了程序的效率。
2. 生成器
生成器是一种特殊的迭代器,它可以动态地生成一系列的值,而无需将这些值全部预先存储在内存中。
2.1 生成器的创建
生成器可以通过函数来创建,使用yield
关键字可以将一个函数变成一个生成器。
示例代码3:
pythonCopy Codedef my_generator():
yield 1
yield 2
yield 3
yield 4
for i in my_generator():
print(i)
2.2 生成器的应用
生成器可以用于动态地生成一系列值,这些值可以是一些比较庞大的数据,如一些网络请求的数据,文件等等。
示例代码4:
pythonCopy Codeimport 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中的迭代器和生成器是非常强大的工具,它们可以帮助我们更加高效地处理大量的数据,提高程序的运行效率。