1.什么是迭代器(iter)
迭代器是容器型数据类型,只能通过类型转换和生成器来获得迭代器对象
迭代器存储数据特点:同时可以保存多个数据,没有办法直接查看,而是需要先将数据从迭代器中取出来(取出来之后不能再放回去)
1)所有的容器都可以转换成迭代器
iter1 = iter([10, 20, 30, 40])
print(iter1)
iter2 = iter('abc')
print(iter2)
iter3 = iter({'name': '张三', 'age': 18, 'gender': '男'})
print(iter3)
2.获取迭代器中的元素
无论通过什么样的方式,只要是将迭代器中的某个元素拿到了,那么这个元素在迭代器中就不存在了
list1 = list(iter1)
print(list1) # [10, 20, 30, 40]
list2 = list(iter1)
print(list2) # []
1)遍历
iter5 = iter('hello!')
for x in iter5:
print(f'x: {x}')
print(list(iter5)) # []
2)获取单个元素
nex(迭代器对象) - 获取一个元素(当前最前面的那个元素)
迭代器对象.next() - 获取一个元素(当前最前面的那个元素)
iter6 = iter({'name': '张三', 'age': 18, 'gender': '男'})
print(next(iter6)) # name
print(next(iter6)) # age
print(next(iter6)) # gender
#print(next(iter6)) # StopIteration
iter7 = iter([1, 2 ,3, 4, 5, 6, 7])
next(iter7)
next(iter7)
for x in iter7:
print(f'x:{x}')
len 无法获取迭代器的长度
iter8 = iter('hello world')
#print(len(iter8)) #TypeError: object of type 'str_iterator' has no len()