对于python中迭代器和rang()对象的理解


对于python中迭代器和rang()对象的理解

在课堂上学python的时候,很多东西其实并不是很了解,比如迭代器这个东西,只是止于它怎么用,其实不知道它的本质到底是什么,只觉得它是可以不断“一代一代”输出的东西,所以以前以为range这些只要可以用for一代一代拿出来的都可以算,但是随着自学的深入,我又有了新的理解

下面实验探究基于:python3.7.3的jupyter notebook

刚刚接触了generator,知道了他也是可迭代的,就引起了对迭代器的兴趣
  那么什么是迭代器呢,查阅了别人的blog和百科之后,我记录如下
  迭代是访问一个元素集合的一种方式,从第一个元素知道访问完所有元素,只会向前不会后退。

可迭代对象

可以直接作用于for循环的对象,称为iterable

  • 一类是数据的各种集合,list,dict,set,str,tuple···
  • 还有一类就是generator(生成器)

迭代器

迭代器(iterator),尤指可以被next()函数调用返回下一个值的对象,list,str,dict,tuple,set这些数据集合不能被调用,不是迭代器,但是所有可迭代对象都可以用iter函数转换成迭代器,迭代器也是可迭代对象。

理论是空洞无趣的,下面通过实验探究一下他们到底是什么

探究

下面的sys.getsizeof()函数是用于获取对象的大小的

 1 x
 2 [1, 2, 3, 4, 5]
 3 
 4 x
 5 next(x)
 6 -----------------------------------------------------------------
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值