1.什么是迭代器(iter)
是python提供的容器型数据类型。
获取迭代器中的元素的时候只能从前往后一个一个的取,而且取了之后这个元素在迭代器中就不存在了
2.迭代器的字面量
迭代器没有指定格式的字面量。迭代器作为容器,里面的元素只能通过其他序列转换,或者通过生成器生成
迭代器中的元素可以是任何类型的数据
将字符串转换成迭代器,迭代器中的元素就是字符串中的每个字符
iter1 = iter('hello')
print(iter1)
将列表转换成迭代器,迭代器中的元素就是列表中的每个元素
iter2 = iter([100, 'shj', (10, 20), [1, 2], True, {'name': '小花'}, lambda x: x])
print(iter2)
3.获取元素
(迭代器中的元素只支持查,不支持增删改)
迭代器是通过next函数获取单个元素,for-in遍历一个一个获取每一个元素。
不管哪种方式获取,已经获取过的元素,在迭代器中就不存在
iter3 = iter('hello')
# 1.next
next(迭代器) -> 获取迭代器中最新的数据(最顶层)
print(iter3)
print(next(iter3))
print(next(iter3))
print(next(iter3))
print(next(iter3))
print(next(iter3))
# print(next(iter3)) # 报 'StopIteration'异常, 因为在这儿迭代器中的数据已经取完了
print(iter3)
iter3 = iter('123456')
print(next(iter3))
通过for-in取迭代器中的元素和next效果一样,元素还是会从迭代器中取出
for x in iter3:
print('x:', x)
print(next(iter3))
练习: 看打印结果
iter4 = iter([10, True, 'abc', (1, 2)])
index = 0
for x in iter4:
index += 1
if index == 2:
break
index = 0
x = 10 iter4 = True, 'abc', (1, 2) index = 1 if 1 == 2
x = True iter4 = 'abc', (1, 2) index = 2 if 2==2
item = next(iter4)
print(item)
print(next(iter4))
网友评论