迭代器基础

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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值