python语言,如何理解zip函数?如何打印zip类型数据?
发布于 作者:苏南大叔 来源:程序如此灵动~

在python
语言里面,有很多奇怪的数据类型,其中一个就是zip
数据类型。据苏南大叔的理解,它和平时所说的zip
压缩格式,还是不一样的。苏南大叔的理解是:zip
类型就是个类似dict
类型的数据类型。具有的公用就两个:整理数据+封包数据。区别于dict
类型的功能就是封包,封起来别人看不到。由于解开数据并没有门槛,用于数据加密解密,似乎也是没有啥效果的。

大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文描述python
语言里面,如何使用zip()
和*zip()
,对数据进行封装和解包。测试环境:win10
,python@3.6.8
。本文对于zip
类型的解读,都是苏南大叔自己的想法,如有不妥,还请指正。
普通数据封包
正如苏南大叔所说的,和这个zip
最类似的是dict
。数据都是成组出现的,通过zip
给缝合到一起。
输出:
上面这个例子中,zip
数据类型把list
数据类型和tuple
数据类型缝合到了一起。zip
类型本质上还是个迭代器,所以它具有特征:
- 无法直接输出,但是可以转类型输出。
- 一用即废,无法第二次使用。所以,可以考虑保存到别的类型变量。
输出:
输出方式之*zip
官方推荐的方式是使用*zip
来对zip
进行解包,这个函数是不是非常奇怪?星号其实并不是函数名的一部分,实际上是个用于迭代器的解包运算符。这个问题,待后续讨论。
这个*zip
很不好用,条件苛刻。
输出方式之迭代输出
可以迭代输出:
输出:
转换类型输出【推荐】
对zip
类型可以转化为传统的已知类型,比如list
/tuple
/dict
。

打包的数据【注意set类型】
zip
不但可以打包两组数据,也可以打包很多个数据,一一对应即可。如果某条数据的成员多,那么会自动舍弃。虽然支持打包set
数据,但是由于set
数据的天生去重并且无序性,打包的结果会并不具有唯一性。所以,最好不要试图处理set
数据(也就是大括号包裹的数据)。
多次输出可以发现,涉及到set
为输入类型的时候,会有随机输出的情况。
对于输出强制转化为set
的情况,输出的内容也是无序的。但是,并不影响效果。

循环取值tuple

相关链接
- https://newsn.net/say/python-tuple.html
- https://newsn.net/say/python-def.html
- https://newsn.net/say/python-dir.html
- https://newsn.net/say/python-set-diff.html
总结
python
这些数据类型,总是让人眼花缭乱,让人措不及防。更多python
经验文章,请点击:


