Python日常(10):你真的了解可迭代类型吗?

人生苦短,我学python!

目录

前沿

1.常见的可迭代类型及检验方式

 2.应用场景

作者的话


前沿

        在说到python数据类型时,就曾多次提到这个可迭代类型,它到底是个什么神秘的事物呢?今天我们就来揭开这面纱。

        Python日常(3):字符串的创建、增加(追加、局部添加)、修改、删除(整体、特定字符)_Chandni_小月月的博客-CSDN博客

        Python日常(4):集合的创建、增加、修改、删除_Chandni_小月月的博客-CSDN博客

        Python日常(5):元组的创建、增加、修改、删除_Chandni_小月月的博客-CSDN博客

        Python日常(6):列表的创建、增加(追加、局部添加)、修改、删除_Chandni_小月月的博客-CSDN博客

        Python日常(7):字典的创建、增加、修改、删除_Chandni_小月月的博客-CSDN博客

        我是chandni,关注我,不迷路!


1.常见的可迭代类型及检验方式

        在我们所熟知的数据类型中,字符串、集合、元组、列表、字典都属于可迭代类型。当然对于较高级的数据类型例如:队列、栈、顺序字典、名称元组都是可迭代类型,但这不在本次讲述范围内,就不过多介绍。对于可迭代类型来讲,还是比较难以理解的,但掌握上述所列举的数据类型,基本上能解决95%以上的问题。

        Python中任意的对象,只要它定义了可以返回一个迭代器的__iter__方法,或者定义了可以支持下标索引的__getitem__方法,那么它就是一个可迭代对象。这属于面向对象中的内容了,要想真正理解可迭代对象首先要理解迭代器,理解迭代器就要理解生成器……是不是有一种想下车的准备。(这不是上幼儿园的车,我要下去!!)相信读者应该也能理解了这不是一时半会能讲清楚的。不过后续都会慢慢更新的,相信你到时候回来再看,会有一种豁然开朗的感觉。

        讲了那么多可迭代类型,那哪些是不可迭代类型呢?常见的如整型、浮点型、复数、分数等。

 问题:

        这也是我今天才知道的,从3.3之后Iterable被纳入到了collections.abc里,原本的collections已经不再支持了。

        另外须注意的是,可迭代类型大多数为不可哈希类型(也就是id不会变的数据类型),但字符串是迭代类型同样也是可哈希类型。其余上述所列举的都是不可哈希类型(元组也是不可哈希的哦,虽然它不能被更改,大家可以想一下为什么,关于是否可哈希后续文章会讲到)。 


 2.应用场景

        前面我们已经知道了,何为可迭代类型,那通常用在什么地方呢?

        其他是数据类型读者也可以用同样的方式查看一下具体情况,肯定都是set(iterable)的形式。其实这便是它的妙用所在,你可以想象如果你初始化一个只包含单一字符的集合,需要一个字符一个字符输入且要加上引号,这是一个痛苦的过程,也不符合python便捷、简单的初衷。可迭代类型对于这种问题的优越性是不言自明的,也是其主要的应用场景,当然对于自定义的可迭代对象,其妙用就更多了,不过这不在该模块讲述范围内,就不过多叙述。


作者的话

        拖到了本周的最后一天,加更的承诺终于兑现了,不说了,玩去了!!!

        我是chandni,关注我,不迷路! 

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chandni.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值