3、zip() 的问题与解决zip() 最明显的问题是它会舍弃掉未耗尽的迭代器:
![一篇文章掌握 Python 内置 zip 的全部内容](http://img.jiangsulong.com/220418/05544364c-8.jpg)
文章插图
这是一种木桶效应,最终的结果由最短的木板来决定 。
有一种解决思路是取长板,同时补足短板(用 None 值填充),这就是 itertools 中的 zip_longest 方法:
![一篇文章掌握 Python 内置 zip 的全部内容](http://img.jiangsulong.com/220418/0554434U7-9.jpg)
文章插图
它填充了冗余数据,同时最大限度地保证了原始数据的完整性 。
但是,如果我们不希望有冗余数据,只希望得到按最长方式对齐的数据呢?
Python 官方最近采纳了 PEP-618,它就是为了应对这个问题 。当出现迭代器长度不一致时,它既不向短板妥协,也不向长板妥协,而是抛出 ValueError 。它认为入参值错误,也就是严格要求入参的数据完整性 。
该 PEP 会被合入到一年后的 Python 3.10 版本,关于更多的内容细节,可查阅这篇PEP-618 译文。(https://mp.weixin.qq.com/s/W6XkRjDHvVSqtZKRceqwdw)
【一篇文章掌握 Python 内置 zip 的全部内容】
推荐阅读
- 茶叶鹌鹑蛋的做法,五香茶叶鹌鹑蛋的做法
- Java 后端博客系统文章系统——No1
- 服务器遭遇挖矿怎么办?
- 如何用 Python 清洗数据?
- 教你写Bug,常见的 OOM 异常分析
- 冬瓜茶砖怎么吃,自制冬瓜茶的做法
- 瓷器中的冰裂纹,哥窑瓷器有什么特点
- 发烧时忌喝茶,喝茶十二忌你知几个
- 脆皮茶香鸡的做法,干烧沙茶鸡的做法
- 大红袍,金骏眉,金骏眉茶叶价格表