1)迭代器是容器型数据类型(可以遍历,也可以转换成其他容器),无法直接提供一个迭代器,只能将其他序列转换成迭代器。
2)特点:
a.打印迭代器的时候无法查看到元素有哪些。
b.无法通过len获取迭代器中元素的个数。
c.如果要使用迭代器中的元素必须将元素从迭代器中取出来(取走),取走的元素会从迭代器中永久的消失,用一个少一个。
d.任何数据都可以作为迭代器的元素。
e.只有序列可以转换成迭代器。
i1 = iter('abc')
i2 = iter([10, 20, 30])
i3 = iter((100, 1.23, 'abc', True, [10, 20]))
print(i1) #
print(i2) #
print(len(i1)) 会报错!
无论以任何方式获取到了迭代器中某个元素,那么这个元素一定会从迭代器中消失。
next(迭代器) —— 获取迭代器最前面的元素
for 变量 in 迭代器:循环体
i1 = iter('abc')
i2 = iter([10, 20, 30])
i3 = iter((100, 1.23, 'abc', True, [10, 20]))
print(next(i1)) # a
print(next(i1)) # b
print(next(i1)) # c,此时迭代器变为空了
# print(next(i1)) #没有东西了就会报错!print(next(i2)) # 10
print(list(i2)) # [20, 30],这个时候迭代器是空的了
# 以任何方式将迭代器中数据取出来都会消失
# print(next(i2)) # 报错!
for x in i3:print(x)#[10, 20]
print(list(i3)) #[]