栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python zip() 的简单用法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python zip() 的简单用法

如同字面意思,打包。在一些场景中,我们的一个对象包含两种简单属性,比方商品的名称和价格:

name = ["apple", "banana", "cat", "dog"]
price = [1, 2, 3, 4]

如果要把这两个东西绑定起来管理,一种标准的方法自然是利用面向对象的思想弄一个类。而zip提供了一种更简单的方式:

name = ["apple", "banana", "cat", "dog"]
price = [1, 2, 3, 4]

product = zip(name, price)
print(product)
product = list(product)
print(product)
print(type(product[0]))

输出如下:


[('apple', 1), ('banana', 2), ('cat', 3), ('dog', 4)]

直接调用zip得到的是一个zip对象,可以使用list方法将其转化为list对象以供使用。而list中存储的则是按原列表顺序匹配得到的一个个tuple。


如果各列表的长度不一,则以最短的列表为准,多余的部分将被直接舍弃:

name = ["apple", "banana", "cat", "dog"]
price = [1, 2, 3]

product = zip(name, price)
product = list(product)
print(product)

输出如下:

[('apple', 1), ('banana', 2), ('cat', 3)]

当然,将两个以上的列表合在一起也是可以的:

name = ["apple", "banana", "cat", "dog"]
price = [1, 2, 3]
num = [6, 7]

product = zip(name, price, num)
product = list(product)
print(product)

输出如下:

[('apple', 1, 6), ('banana', 2, 7)]

本文为了介绍方便起见使用list作为zip的参数,而实际上任何可迭代的对象都是可以用zip来捆绑在一起的。
当然了,有压缩,自然也就有解压。对于满足"列表里面包含多个元组"形式的压缩对象,使用zip(*)进行解压:

name = ["apple", "banana", "cat", "dog"]
price = [1, 2, 3]
num = [6, 7]

product = list(zip(name, price, num))
name1, price1, num1 = list(zip(*product))
print(name1)
print(price1)
print(num1)

输出如下:

('apple', 'banana')
(1, 2)
(6, 7)

注意这里得到的是tuple,有需要的话还得转回list。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1005468.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号