可迭代对象、生成器、迭代器

1. 什么是可迭代对象、生成器、迭代器?

什么是可迭代对象?

在python中可迭代对象就是可以被for循环遍历的对象,常见的可迭代对象有字符串,列表,字典,set集合,元组

什么是生成器?

在编程中,我们有时候需要生成一个列表,但是该列表可能占据大量内存,此时列表直接加载到内存中就不可取,下面看一个简单的生成器

t = (i for i in range(10))
print(t)
print(next(t))
print(next(t))
print(next(t))

运行结果如下

<generator object <genexpr> at 0x0000024271136D58>
0
1
2

什么是迭代器?

简单的说就是能够被next调用,返回下一个值的对象

2. 三者的区别和联系

(1)、生成器就是迭代器
(2)、迭代器不一定是生成器
(3)、可迭代的对象不一定是迭代器

(4)、迭代器肯定可以被迭代

如何判断一个对象是可迭代的对象还是迭代器?

from collections import Iterable, Iterator

ls = [12, 45, 15, 78, 31]
# Iterable 判断对象是否可迭代的对象
print(isinstance(ls, Iterable))
# Iterator 判断对象是否是迭代器
print(isinstance(ls, Iterator))
# 将一个可迭代的对象转化成迭代器
lt = iter(ls)
print(isinstance(lt, Iterator))

运行结果如下

True
False
True

猜你喜欢

转载自blog.csdn.net/qwerLoL123456/article/details/81026442