Python函数之zip函数的介绍与实际应用

 更新时间:2022年03月22日 16:34:27   作者:Amo Xiang  
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象(python2 返回的是这些元组组成的列表 ),下面这篇文章主要给大家介绍了关于Python函数之zip函数实际应用的相关资料,需要的朋友可以参考下

1. zip() 函数的介绍

1.1 功能

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的 zip 对象。

1.2 语法

zip(*iterables) --> zip object

参数说明:

(1) iterables:可迭代对象,如列表、字典、元组、字符串等,zip() 函数允许多个可迭代对象作为参数。

(2) 当 zip() 函数没有参数时,则返回空的迭代器。

(3) 当 zip() 函数只有一个参数时,则从参数中依次取一个元素组成一个元组,再将依次组成的元组组合成一个新的迭代器。

(4) 当 zip() 函数有两个参数时,分别从两个参数中依次各取出一个元素组成元组,再将依次组成的元组组合成一个新的迭代器。

(5) 返回值:返回一个可迭代的 zip 对象,其内部元素为元组,可以使用 list() 函数 或 tuple() 函数将其转换为列表或元组。

2. zip() 函数的应用

2.1 用 zip() 函数实现列表合并

下面使用 zip() 函数实现将两个列表进行合并。例如,将 name_list、age_list 两个列表合并,代码如下:

name_list = ["Amo", "Paul", "Jason", "Seven"]
age_list = [18, 19, 20, 21]
# 输出 ==> [('Amo', 18), ('Paul', 19), ('Jason', 20), ('Seven', 21)]
print(list(zip(name_list, age_list)))

2.2 使用 zip() 函数建立字典

有两个列表 name_list 和 score_list,其中 name_list 中存储着学生姓名,score_list 存储着每个学生的考试成绩,如果要通过某个学生姓名来查找其考试成绩,则需要一个字典,zip() 函数可以很方便地建立字典,代码如下:

name_list = ["Amo", "Paul", "Jason", "Seven"]  # 定义列表name_list
score_list = [80, 96, 77, 88]  # 定义成绩
my_dict = dict(zip(name_list, score_list))  # 使用dict()函数将zip对象转换为字典
print(my_dict["Amo"])  # 输出 80

2.3 zip() 函数妙用 1— 矩阵的旋转

矩阵是高等数学中的常见工具,也常用于统计分析和数学应用中。下面使用 zip() 函数实现一个 xyz 的矩阵的旋转,代码如下:

x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]

xyz = list(zip(x, y, z))
print(xyz)  # 输出 ==> [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

2.4 zip() 函数妙用 2— 矩阵的行列转置

矩阵的转置是矩阵的一种运算,在矩阵的所有运算法则中占有重要地位。例如,把矩阵 A 的行和列互相交换所产生的的矩阵称为 A 的转置矩阵,这一过程称为矩阵的转置。下面实现将 xyz 矩阵进行转置,代码如下:

x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]

xyz = list(zip(x, y, z))
print(xyz)
for a, b, c in zip(x, y, z):
    print(f"{a},{b},{c}")

2.5 zip() 函数妙用 3— 将 4×3 矩阵转置成 3×4 矩阵

data1 = ((0, 1, 2), (3, 4, 5), (6, 7, 8), (9, 10, 11))
data2 = zip(*data1)
print(type(data2))  # <class 'zip'>
print(tuple(data2))  # 输出 ==> ((0, 3, 6, 9), (1, 4, 7, 10), (2, 5, 8, 11))

2.6 通过序列的解压执行 zip() 函数的反操作

在某些情况下,我们需要执行相反的操作 — 解压序列。解压操作涉及将压缩后的元素恢复为其原始状态。可以添加 * 运算符到函数调用中。代码如下:

a = (1, 2, 3)
b = (10, 20, 30)
L = list(zip(a, b))
print(f"obj = {L}")
c, d = list(zip(*L))  # 使用*解压序列
print(f"c = {c} \nd = {d}")
if a == c and b == d:
    print("两次 zip() 等于啥都没干......")

2.7 输出字典中值最大所对应的键

在一个字典当中,求值最大所对应的键时,zip() 函数就派上了大用场。代码如下:

data = {"张三": 100, "李四": 20, "王五": 500, "赵六": 12}
obj = zip(data.values(), data.keys())
# 输出:分数最高的学生姓名为: 王五
print(f"分数最高的学生姓名为: {max(obj)[1]}")

附:*zip( )

*zip()函数是zip()函数的逆过程,将zip对象变成原先组合前的数据。

a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9, 10, 11]
print(*zip(a, b))

总结

到此这篇关于Python函数之zip函数的文章就介绍到这了,更多相关Python zip函数应用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Tensorflow实现神经网络拟合线性回归

    Tensorflow实现神经网络拟合线性回归

    这篇文章主要为大家详细介绍了Tensorflow实现神经网络拟合线性回归,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Python脚本实现虾米网签到功能

    Python脚本实现虾米网签到功能

    这篇文章主要介绍了Python脚本实现虾米网签到功能的方法,涉及Python调用URL模块实现数据传输与处理的相关技巧,需要的朋友可以参考下
    2016-04-04
  • 使用Python快速搭建HTTP服务和文件共享服务的实例讲解

    使用Python快速搭建HTTP服务和文件共享服务的实例讲解

    今天小编就为大家分享一篇使用Python快速搭建HTTP服务和文件共享服务的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python实现字典去除重复的方法示例

    Python实现字典去除重复的方法示例

    这篇文章主要介绍了Python实现字典去除重复的方法,涉及Python字典遍历、文件读取、去除重复等相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • Python中re模块常用方法总结分析

    Python中re模块常用方法总结分析

    这篇文章主要为大家介绍了Python中re模块常用方法,并对这些常用方法进行总结分析,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09
  • pygame学习笔记(4):声音控制

    pygame学习笔记(4):声音控制

    这篇文章主要介绍了pygame学习笔记(4):声音控制,本文讲解了pygame.mixer启动与初始化、播放声音片段wav文件、播放mp3、wma、ogg音乐文件、控制音量、制作mp3播放器中遇到的问题等内容,需要的朋友可以参考下
    2015-04-04
  • python list count统计个数的实现

    python list count统计个数的实现

    这篇文章主要介绍了python list count统计个数的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • python批量替换文件名中的共同字符实例

    python批量替换文件名中的共同字符实例

    这篇文章主要介绍了python批量替换文件名中的共同字符实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 基于PyQt5制作Excel数据分组汇总器

    基于PyQt5制作Excel数据分组汇总器

    这篇文章主要介绍了基于PyQt5制作的一个小工具:Excel数据分组汇总器。文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起试一试
    2022-01-01
  • Python实现检测SSL证书是否过期

    Python实现检测SSL证书是否过期

    我们知道 SSL 证书是会过期的,一旦过期之后需要重新申请,如果没有及时更换证书的话,就有可能导致网站出问题,所以本文介绍了如何利用Python实现检测SSL证书是否过期,需要的可以参考下
    2023-08-08

最新评论