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

python中的zip函数

最近刷leetcode,以及处理数据的时候,发现python中一个平时很少关注的函数zip,合理运用的话,可以规避很多算法层面上的逻辑流程结构,算是python搞算法部分一个合理偷懒的作弊函数吧!

zip() 函数基本概念

zip() 函数将多个可迭代对象(如列表、元组等)"打包"在一起,创建一个迭代器,返回元组的序列。

基本语法

zip(*iterables)
  • *iterables: 一个或多个可迭代对象

举例来说:

1,2个列表(或者2个可迭代基本元素的对齐打包):

list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]result = zip(list1, list2)
# 结果: [('a', 1), ('b', 2), ('c', 3)]

注意到此时这里的zip已经是一个整合打包之后的迭代器了,

所以如果要访问元素的话

(1)需要进行迭代

(2)或者直接将该迭代器显式转换为其他的基本可迭代数据格式:
比如说是list列表,或者是元组tuple之类,

2,多个列表(同上):

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
cities = ['New York', 'London', 'Tokyo']
list(zip(names,ages,cities))

如果是长度不同的列表进行对齐的话,注意!这里是不会广播的,有的学生很容易把这里的对齐和numpy等高维数组处理中的广播broadcast机制混淆在一起,

但是实际上合并的时候是以短的序列为主:

实际上,数据敏感的人,其实一眼就可以看出来zip处理数据的方式,可以很自然的和dict也就是key-value字典的映射/组织规则联系起来,

这个一般是在数据处理中非常常见,我们在处理比较复杂的生物序列数据,比如说是fasta格式的数据(header+content其实可以分离开来当作是不同的key、value向量,如果要进一步对header进行处理的话,其实是可以细分为多个元素级别的dict),或者是其他的问题。

我们一般是key、value分离来处理的,

所以这个时候可以使用zip来重新组织分离的key-value为新的dict格式数据,当然,我们其实可以继续保留这个zip打包对齐的数据,因为一般的dict都是key-value的二元对齐,但是我们在zip中其实是可以打包多个数据的,也就是达到多元对齐,然后我们就可以按照需求从里面按照数字下标索引index切出不同的复杂的字典格式数据。

http://www.xdnf.cn/news/14064.html

相关文章:

  • Python的格式化输入输出
  • 深入理解 @JsonGetter:精准掌控前端返回数据格式!
  • cpp 绑定方案大比拼
  • SpringBoot实现权限管理系统完整指南(附源码)
  • 【Code】COP FOR THE STRUCTURAL USE OF STEEL 2011 (2023 Edition)
  • SDPA(Scaled Dot-Product Attention)详解
  • CE 标志新门槛:智能门锁 EN 18031 认证合规路径与成本分析
  • 分布式锁模板工具类
  • 2025企业级BI产品评测和推荐
  • 在 WinForms 中制作无边框窗体通过鼠标拖动移动和调整大小,难点是我窗体上被标题栏和状态栏dock之后很难选中
  • 短视频矩阵系统开发实战:PHP实现SaaS独立部署
  • deepimagej-plugin开源程序是用于运行深度学习模型的 ImageJ 插件
  • 【解决方案】Kali 2022.3修复仓库密钥一键安装docker,docker compose
  • 开发环境与生产环境的 yml 文件与配置
  • 1分钟理解FreeRtos中的信号量知识
  • LeetCode - 387. 字符串中的第一个唯一字符
  • 一个简单的torch-cuda demo
  • Acrobat 首选项配置:从注册表到锁定机制
  • 【MPC】模型预测控制笔记 (2):约束MPC
  • C语言预处理命令详解
  • 第9章 表达式和运算符 笔记 待完善
  • 如何运营一个专业的体育比分网站
  • 2025年06月13日Github流行趋势
  • 【Photoshop】使用路径和形状制作印章
  • 基于51单片机的电机控制角度proteus仿真
  • 【IEEE/EI/Scopus检索】2025年第五届机器学习与大数据管理国际会议 (MLBDM 2025)
  • Streamlit 笔记
  • Google Drive·实现共享文件本地访问与编辑
  • sdk添加包,更新文件系统--万象奥科RK3506
  • 基于数字孪生的风光储一体化园区智能化管理解决方案