Python-zip函数基础

系统管理员 2021-11-16 19:40 428阅读 0赞

又是在写一个小项目时用到了python的某个知识点函数,由于在实际的项目中用到了所以觉得应该复习一下它的基本知识了

zip函数 通俗一点就是一个可以结合多个列表的一个函数

也参照了其他一些博客的精髓,接下来我们从它的基本知识讲起:

举个例子:

  1. x = [ 1, 2, 3]
  2. y = [ 4, 5, 6]
  3. z = [ 7, 8, 9]
  4. xyz = zip(x, y, z)
  5. print(list(i))

[(1, 4, 7),(2, 5, 8),(3, 6, 9)] #可以看到zip返回出来的还是一个tuple列表

可以看出zip将三个列表采用一一对应的方式相结合起来了

再看一个明显一点的zip的列子:

  1. x = [ "id", "name", "age"]
  2. y = [ 3306, "dh", 18]
  3. xy = zip(x, y)
  4. print(list(xy))
  5. [('id', 3306), ('name', 'dh'), ('age', 18)]

可以明显的看出zip的作用了吧

zip可以处理一个或多个的列表,什么意思了呢,就是。。还是看代码吧

  1. x = [ 1, 2, 3, 4]
  2. x = zip(x)
  3. print(list(x))
  4. [(1,), (2,), (3,), (4,)]
  5. x = zip()
  6. print(list(x))
  7. []

可以看出当只有一个列表甚至没有时zip也会进行操作,就是这个意思

要是两个列表的长度不一致zip会怎么处理呢?

  1. x = [ 1, 2, 3]
  2. y = [ 4, 5, 6, 7]
  3. xy = zip(x, y)
  4. print(list(xy))
  5. [(1, 4), (2, 5), (3, 6)]

可以看出y列表要比x列表长,但是zip后是以x为基准来结合的 注:(zip结合列表时会以最短的那个列表为它的长度)

zip类似于压缩与解压缩的操作:

  1. x = [ 1, 2, 3] #unzip过程 类似于zip的逆过程
  2. y = [ 4, 5, 6]
  3. z = [ 7, 8 , 9]
  4. xyz = zip(x, y, z)
  5. zyx = zip(*xyz) # *xyz 表示将xyz列表中的元素来zip,当xyz列表中存的是列表元素时,就是将列表元素来zip
  6. print(list(zyx)) #xyz是:xyz=[[1, 4, 7], [2, 5, 8], [3, 6, 9]] zip(*xyz)=>zip([1, 2, 3],[4, 5, 6],[7, 8, 9])
  7. [(1, 2, 3), (4, 5, 6), (7, 8, 9)]

zip生成列表的方法:

  1. x = [ 1, 2, 3, 4]
  2. y = zip(* [x] * 2) #完成步骤 1: [x]会生成一个只有一个x元素的列表 2: [x]*2 列表元素*重复2次 3:那么zip(* [x] * 2)则表示zip(x, x)
  3. print(list(y))
  4. [(1, 1), (2, 2), (3, 3), (4, 4)]

zip函数将字典反转成列表形式:

  1. x = { 'age': 18, 'name': 'dh', 'id': 3306}
  2. print(x.items()) #以列表返回可遍历的(键, 值) 元组数组
  3. [('age', 18), ('name', 'dh'), ('id', 3306)]
  4. x = zip(x.values(),x.keys())
  5. print(list(x))
  6. [(18, 'age'), ('dh', 'name'), (3306, 'id')]

以上只是zip的基础常见的用法,进阶篇可以参考其他相关的博客

zip函数以后的项目中你可能会使用许多,我在最近的一次爬虫中使用到了zip函数来规范、方便的保存爬下来的数据,十分方便,将不同的列表
之间建立起一种规律性的关系,以便你用来储存在MySQL数据库中

发表评论

表情:
评论列表 (有 0 条评论,428人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python基础——函数

    调用函数 Python中内置了许多有用的函数,我们可以直接调用这些函数,不过每个函数都有其必须传入正确的参数,如果只知道调用的函数名称,不知道参数格式,可以使用help函

    相关 Java 函数基础

    函数 函数的概述 不断进行加法运算,为了提高代码的复用性,就把该功能独立封装成一段独立的小程序,当下次需要执行加法运算的时候,就可以直接调用这个段小程序即可,那么这

    相关 C++基础:(四) 函数基础

    内联函数 内联函数不是在调用时发送控制转移,而是在编译时将函数体嵌入在每一个调用处,节省了参数传递、控制转移等开销。 内联函数应该是简单的函数,结构简单、语句

    相关 python基础--函数

    python中函数的定义:函数是逻辑结构化和过程化的一种编程方法,用来实现某些特定的功能. python中函数简单定义的方法 def test(x):

    相关 python基础-函数基础

    一、函数:在进行一些项目时,某些功能会被反复的调用,那么我们就可以把这些功能封装成为函数。需要用这些功能时再调用函数。 二、定义函数        def 函数名(参数1,

    相关 python函数基础

    什么是函数 函数就是有特定功能的工具 为什么要用函数 可以减少代码冗余,增加代码复用性 使代码逻辑更加清晰 一次编写,任意次数调用