精华内容
下载资源
问答
  • zip函数

    千次阅读 2020-07-09 16:07:56
    zip函数打包解包 打包 zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同 list1 = [1,2...

    zip函数

    打包

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

    如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同

    list1 = [1,2,3,4,5]
    list2 = ["hello","good","nice","haha"]
    set3 = {True,False,None,0}
    zipobj = zip(list1,list2,set3)  # 打包
    
    print(zipobj) # 这是一个包,显示的是包所在的地址 <zip object at 0x00000149CFFFAB48>
    
    print(list(zipobj)) #可以将包转化为列表,查看包中的内容 
    
    # 打印结果为 [(1, 'hello', False), (2, 'good', True), (3, 'nice', None)]
    

    对于打印的结果,或许多多少少都会有一些疑惑,这里逐一进行解释

    1、为什么列表中的元组只有3个?

    首先看一下 set3,这是一个set集合set集合有两个特点:去重无序

    打印一下 set3,会发现,得到的结果是{False, True, None},因为在这里,0=False,所以 set3里,其实只有三个元素。
    虽然set集合是无序的,但是底层代码逻辑,还是以某种规则对元素内容进行了排序,False就排到了True前面,这一点就不再详细进行说明。

    2、打包的具体过程

    • 首先在list1中取出元素1,在list2中取出元素hello,在set3中取出元素False,组成了第一个元组(1, 'hello', False)
    • 然后在list1中取出元素2,在list2中取出元素good,在set3中取出元素True,组成了第二个元组(2, 'good', True)
    • list1中取出元素3,在list2中取出元素nice,在set3中取出元素None,组成了第三个元组(3, 'nice', None)
    • set3里只有三个元素,所以,list1list2中剩余的元素就被舍弃,最后,将三个元组放入列表中,[(1, 'hello', False), (2, 'good', True), (3, 'nice', None)],最终打包完成。

    解包

    zip()函数可以对 zip对象进行解包处理

    语法:zip(*zipobj)

    list1 = [1,2,3,4,5]
    list2 = ["hello","good","nice","haha"]
    set3  = {True,False,None,0}
    
    zipobj = zip(list1,list2,set3 ) # 打包
    
    print(zip(*zipobj)) #解包 显示的也是一串地址 <zip object at 0x000001B34E5FAB88>
    
    # 若想查看解包的内容,可使用for循环打印(需将上一步print注释,因为上一步中已经解包)
    for i in zip(*zipobj):
        print(i)
        
    # 打印结果
    (1, 2, 3)
    ('hello', 'good', 'nice')
    (False, True, None)
    

    上面已经详细描述了打包的过程,而解包,其实就是将打包的过程逆转。最终打包的结果是[(1, 'hello', False), (2, 'good', True), (3, 'nice', None)]

    • 列表中有三个元组,第一个元组(1, 'hello', False),第二个元组(2, 'good', True),第三个元组(3, 'nice', None)
    • 将第一个元组中的1取出,第二个元组中的2取出,第三个元组中的3取出,重新组成第一个新的元组(1, 2, 3)
    • 将第一个元组中的hello取出,第二个元组中的good取出,第三个元组中的nice取出,重新组成第二个新的元组('hello', 'good', 'nice')
    • 将第一个元组中的False取出,第二个元组中的True取出,第三个元组中的None取出,重新组成第三个新的元组(1, 2, 3)
    • 最后,通过for循环,将三个新的元组打印出来
    展开全文
  • zip 函数

    2011-04-18 14:57:00
    zip函数接受任意多个序列作为参数,将所有序列按相同的索引组合成一个元素是各个序列合并成的tuple的新序列,新的序列的长度以参数中最短的序列为准。另外(*)操作符与zip函数配合可以实现与zip相反的功能,即将合并...
    zip函数接受任意多个序列作为参数,将所有序列按相同的索引组合成一个元素是各个序列合并成的tuple的新序列,新的序列的长度以参数中最短的序列为准。另外(*)操作符与zip函数配合可以实现与zip相反的功能,即将合并的序列拆成多个tuple。
    ①tuple的新序列
    >>>>x=[1,2,3],y=['a','b','c']
    >>>zip(x,y)
    [(1,'a'),(2,'b'),(3,'c')]

    ②新的序列的长度以参数中最短的序列为准.
    >>>>x=[1,2],y=['a','b','c']
    >>>zip(x,y)
    [(1,'a'),(2,'b')]

    ③(*)操作符与zip函数配合可以实现与zip相反的功能,即将合并的序列拆成多个tuple。
    >>>>x=[1,2,3],y=['a','b','c']
    >>>>zip(*zip(x,y))
    [(1,2,3),('a','b','c')]

     

    展开全文
  • zip函数详解

    2020-10-25 23:29:46
    zip函数 zip() 函数创建的是一个只能访问一次的迭代器。 prices = { 'ACME': 45.23, 'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.20, 'FB': 10.75 } p = zip(prices.values(), prices.keys()) print(max(p)) ...

    zip函数详解

    zip() 函数创建的是一个只能访问一次的迭代器。

    prices = {
        'ACME': 45.23,
        'AAPL': 612.78,
        'IBM': 205.55,
        'HPQ': 37.20,
        'FB': 10.75
    }
    p = zip(prices.values(), prices.keys())
    print(max(p))
    print('==============')
    print(min(p))
    
    

    输出

    (612.78, 'AAPL')
    Traceback (most recent call last):
    ==============
      File "C:/Users/Administrator/Desktop/hzw/app/tests.py", line 10, in <module>
        print(min(p))
    ValueError: min() arg is an empty sequence
    

    zip对象的排序方式,是按照第一个参数排序的
    使用场景

    1. 求字典某个字段的最小值

    例子
    翻转prices并使用zip函数封装成zip对象再培训

    prices = {
        'ACME': 45.23,
        'AAPL': 612.78,
        'IBM': 205.55,
        'HPQ': 37.20,
        'FB': 10.75
    }
    p = zip(prices.values(), prices.keys())
    #print(max(p))
    print(min(p))
    
    展开全文
  • Python zip函数详解

    千次阅读 2017-08-11 13:49:58
    Python zip函数详解

    转载自:http://www.cnblogs.com/frydsh/archive/2012/07/10/2585370.html

    Python的zip函数

    zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体意思不好用文字来表述,直接看示例:

    1.示例1:

    复制代码
    x = [1, 2, 3]
    
    y = [4, 5, 6]
    
    z = [7, 8, 9]
    
    xyz = zip(x, y, z)
    
    print xyz
    复制代码

    运行的结果是:

    [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

    从这个结果可以看出zip函数的基本运作方式。

    2.示例2:

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

    运行的结果是:

    [(1, 4), (2, 5), (3, 6)]

    从这个结果可以看出zip函数的长度处理方式。

    3.示例3:

    x = [1, 2, 3]
    x = zip(x)
    print x

    运行的结果是:

    [(1,), (2,), (3,)]

    从这个结果可以看出zip函数在只有一个参数时运作的方式。

    4.示例4:

    x = zip()
    print x

    运行的结果是:

    []

    从这个结果可以看出zip函数在没有参数时运作的方式。

    5.示例5:

    复制代码
    x = [1, 2, 3]
    
    y = [4, 5, 6]
    
    z = [7, 8, 9]
    
    xyz = zip(x, y, z)
    
    u = zip(*xyz)
    
    print u
    复制代码

    运行的结果是:

    [(1, 2, 3), (4, 5, 6), (7, 8, 9)]

    一般认为这是一个unzip的过程,它的运行机制是这样的:

    在运行zip(*xyz)之前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

    那么,zip(*xyz) 等价于 zip((1, 4, 7), (2, 5, 8), (3, 6, 9))

    所以,运行结果是:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

    注:在函数调用中使用*list/tuple的方式表示将list/tuple分开,作为位置参数传递给对应函数(前提是对应函数支持不定个数的位置参数)

    6.示例6:

    x = [1, 2, 3]
    r = zip(* [x] * 3)
    print r

    运行的结果是:

    [(1, 1, 1), (2, 2, 2), (3, 3, 3)]

    它的运行机制是这样的:

    [x]生成一个列表的列表,它只有一个元素x

    [x] * 3生成一个列表的列表,它有3个元素,[x, x, x]

    zip(* [x] * 3)的意思就明确了,zip(x, x, x)

    展开全文
  • zip函数用法

    千次阅读 2017-07-20 23:33:36
    解析:zip函数接受一序列可迭代对象作为参数,将迭代对象中的元素组合成一个个元组,最后返回一个由元组组成的zip对象,若传入的迭代对象的长度不同,则最终返回的zip对象的长度以传入对象中最短的长度相同。...
  • python3的zip函数和zip(*)函数 一. python3中的zip函数 zip函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个tuple,然后返回一个可迭代的zip对象. 这个可迭代对象可以使用循环的方式列出...
  • Python的zip函数

    2017-07-26 11:48:42
    Python的zip函数
  • python之zip函数

    千次阅读 2020-04-05 21:21:56
      zip函数可以接受一系列的可迭代对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后由这些tuple(元组)组成一个list(列表)返回。 a = [1,2,3,4,5] b = ['a','b','c','d','e'] c = zip(a,b) print...
  • Python——zip函数扩展

    2019-01-03 09:57:55
    不同python版本间zip函数的差别 在python2中的zip是一个函数,返回一个元组。而python3中zip是一个元类,返回的是一个zip对象并且它是一个迭代器。 python2 python3 zip函数主要是将多个队列中的元素依次组合成...
  • python zip函数小结

    千次阅读 2019-04-04 15:13:56
    1.zip函数的定义 zip是python中的一个内建函数,平时用得不是太多。zip的签名如下: def zip(seq1, seq2, *more_seqs): # known special case of zip """ zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...),...
  • python zip函数基础

    千次阅读 2017-04-29 13:19:46
    zip函数 通俗一点就是一个可以结合多个列表的一个函数 也参照了其他一些博客的精髓,接下来我们从它的基本知识讲起: 举个例子: x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) print(li
  • zip() 函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。如果各个可迭代对象的元素个数不一致,则返回的对象长度与最短的可迭代对象相同。利用 * 号操作符,与zip...
  • python中zip函数使用

    2019-02-24 23:45:54
    zip函数使用 看到很多库的源码里使用到了zip函数,来通过例子了解下如何应用 写个转换类型的函数 def k(i): return list(i) 开始测试 两个同维度参数 &gt;&gt;&gt; a=[1,2,3] &gt;&gt;&...
  • python zip函数

    2015-01-21 15:05:42
    zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体意思不好用文字来表述,直接看示例: 1.示例1: x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) print xyz ...
  • python中的zip函数

    2017-09-13 14:46:54
    python中的zip函数,可以同时遍历多个链表x=[1,2,3,4,5,6] y=['a','b','c','d','e'] for num,str in zip(x,y): print(num,str)实验结果:1 a 2 b 3 c 4 d 5 e
  • 【Python】zip函数的使用

    万次阅读 2019-12-29 08:41:45
    zip函数的原型为:zip([iterable, …]) zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。 若传入参数的...
  • zip函数,看的话都应该认识这是压缩的意思,但是怎么用呐? 这里写目录标题zip函数的用法zip(*zipped)的应用zip函数的具体应用 zip函数的用法 zip是用来压缩的,它接受一系列可迭代的对象作为参数,将对象中对应的...
  • python中的zip函数用法

    2018-04-01 21:27:31
    python中zip函数返回一个以元组为元素的列表,其中第 i 个元组包含每个参数序列的第 i 个元素。返回的列表长度被截断为最短的参数序列的长度。只有一个序列参数时,它返回一个1元组的列表。没有参数时,它返回一个空...
  • zip函数和zip(*)函数

    2020-05-05 17:50:37
    zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。 zip(*)函数利用 * 号操作符,...
  • Python 函数 | zip 函数详解

    千次阅读 多人点赞 2020-12-10 11:31:31
    zip() 函数的应用 2.1 用 zip() 函数实现列表合并 2.2 使用 zip() 函数建立字典 2.3 zip() 函数妙用 1--- 矩阵的旋转 2.4 zip() 函数妙用 2--- 矩阵的行列转置 2.5 zip() 函数妙用 3--- 将 4×3 矩阵转置成 3×4 ...
  • (1)zip函数 使用 zip() 函数可以实现压缩 N 个列表, zip() 函数返回的可迭代对象的元素就是长度为 N 的元组。 如下例: a=['数学','语文','英语'] b=[90,100,78] c=['优秀','优秀','一般'] print(zip(a,b,c))...
  • Python的zip函数使用zip() data_class_list = list(zip(data_list, class_list)) #zip压缩合并,将数据与标签对应压缩 random.shuffle(data_class_list) #将data_class_list乱序 index = ...
  • python zip函数说明

    2013-06-06 16:16:37
    zip函数接受任意多个序列作为参数,将所有序列按相同的索引组合成一个元素是各个序列合并成的tuple的新序列,新的序列的长度以参数中最短的序列为准。另外(*)操作符与zip函数配合可以实现与zip相反的功能,即将合并...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 203,251
精华内容 81,300
关键字:

zip函数