当前位置: 首页 > news >正文

Python3中zip()函数知识点总结

1.引言

在本文中,我将带领大家深入了解Python中的zip()函数,使用它可以提升大家的工作效率。
闲话少说,我们直接开始吧!

2. 基础知识

首先,我们来介绍一些基础知识点:

  • Python中的某些数据类型是不可变的(例如字符串、整数),而有些数据类型是可变的(如列表和字典)。不可变的数据对象在创建后不能更改,可变对象可以更改。
  • 可迭代对象是一个单独返回其每个成员元素的对象。比如列表、元组、字符串和字典都是可迭代的对象。我们可以使用iter()for循环来迭代可迭代对象。
  • 当一个对象返回迭代器时,我们必须使用它来检索一个我们可以看到或使用的对象。

3. 向zip函数传递参数

我们可以在函数zip()中传递任意数量的可迭代项:

3.1 传递零个参数

样例如下:

>>> zipped = zip()
>>> list(zipped)
[]

上述代码中,我们向函数zip()传递了零个元素,此时该函数返回空。

3.2 传递一个参数

传递一个参数会创建一个元组集合,每个元组中都有一个元素。

示例代码如下:

# create a list of student names
>>> student_names = ['Lindsay', 'Harry', 'Peter']
# zip the list 
>>> zipped  = zip(student_names)
# consume with list()
>>> list(zipped)
[('Lindsay',), ('Harry',), ('Peter',)]

在上述代码中,我们创建了一个列表,其中有三个字符串表示三个学生的姓名。

3.3 传递两个参数

传递两个参数将创建一个具有成对的元组集合,其中第一个元素来自第一个参数,第二个元素来自第二个参数。

示例代码如下:

# create a list of student ids 
>>> student_ids = ['123', '4450', '5600']
# create a list of student names again, so that we do not forget the earlier steps!
>>> student_names = ['Lindsay', 'Harry', 'Peter']
# zip the lists 
>>> zipped  = zip(student_names, student_ids)
>>> list(zipped)
[('Lindsay', '123'), ('Harry', '4450'), ('Peter', '5600')]

在上述代码中,我们创建了另一个包含三个字符串的列表。此时,每个元素用于表示每个学生student_names的对应student_ids

此时,我们可以使用for循环来遍历访问,样例代码如下:

>>> student_names = ['Lindsay', 'Harry', 'Peter']
>>> student_ids = ['123', '4450', '5600']
>>> for student_name, student_id in zip(student_names, student_ids): 
...     print(student_name, student_id)
... 
Lindsay 123
Harry 4450
Peter 5600

3.4 传递长度不等的参数

到目前为止,我们只研究了每个可迭代项长度相同的示例:包含学生姓名和id的列表长度都是3,但我们也可以传递不同长度的可迭代项。此时,zip函数将返回一个元组集合,其中元组的数量等于长度最小的可迭代项。它将忽略长度较长的可迭代项中的其余元素,如下所示:

# student_ids is a list with 4 elements 
>>> student_ids = ['123', '4450', '5600', '1']
# student_namdes is a list with 3 elements 
>>> student_names = ['Lindsay', 'Harry', 'Peter']
# zip is completely ignoring the last element of student_ids 
>>> list(zip(student_names, student_ids))
[('Lindsay', '123'), ('Harry', '4450'), ('Peter', '5600')]>>> for student_name, student_id in zip(student_names, student_ids): 
...     print(student_name, student_id)
... 
Lindsay 123
Harry 4450
Peter 5600

从上面的示例中可以看到,函数zipstudent_ids中的最后一个元素1没有做任何操作。因此,在传递给zip()之前,检查可迭代项的长度非常重要。

4. 总结

本文重点介绍了Python中关于zip函数的基础知识点总结,并给出了相应的代码示例。

您学废了嘛?

http://www.lryc.cn/news/22402.html

相关文章:

  • 过滤器,监听器,拦截器的原理与在Servlet和Spring的应用
  • minio spring boot 秒传、分片上传、断点续传文件实现
  • MTK平台使用Omnipeek分析空口协议讲解
  • string和自动推断类型
  • 【软件测试】从功能到自动化测试,测试人的进阶之路细节,这些必不可少......
  • C语言青蛙跳台阶【图文详解】
  • 笔记(五)——list容器的基础理论知识
  • 浅谈网络中接口幂等性设计问题
  • 《C Primer Plus》第13章复习题与编程练习
  • 计算机SCI论文应该怎么作图? - 易智编译EaseEditing
  • 【一】kubernetes集群部署
  • Docker安装Redis
  • 在shell中执行一条可执行程序(./a.out) 系统执行的过程
  • 【ArcGIS Pro二次开发】(10):属性表字段(field)的修改
  • 数据结构与算法—散列表
  • 计算机网络笔记、面试八股(一)—— TCP/IP网络模型
  • Servlet笔记(18):国际化
  • kibana搭建(windowslinux)
  • (pytorch进阶之路)Informer
  • 关键词聚类和凸现分析-实战1——亚急性甲状腺炎的
  • 二叉树——二叉搜索树中的众数
  • 安装_配置参数解读_集群安装配置_启动选举_搭建启停脚本---大数据之ZooKeeper工作笔记004
  • RTMP的工作原理及优缺点
  • 【数据结构与算法】——第八章:排序
  • 在linux中web服务器的搭建与配置
  • 《Python机器学习》基础代码2
  • 如何基于MLServer构建Python机器学习服务
  • 9.1 IGMPv1实验
  • 软考高级系统分析师系列论文之十:论实时控制系统与企业信息系统的集成在通信业应用
  • NIO与零拷贝