精华内容
下载资源
问答
  • zip函数
    万次阅读 多人点赞
    2020-12-10 11:31:31

    博友们,你们好,很高兴能在这里和大家分享技术文章,我是 Amo Xiang,是一名在职企业员工,Amo 来源于上家公司的英文名,本意是 。作为刚入行几年互联网行业的小白,博主写博客一方面是为了记录自己的学习过程以及所犯的错误,更多的是希望能够帮助到很多处于起步阶段的萌新,让他们少走弯路。在编写文章时,参考了大量书籍及一些互联网大佬的资源,并结合了自己的工作经验,博主本着科学、严谨的态度、力求精益求精,但疏漏之处在所难免,敬请广大博友批评指正。博客主页:https://blog.csdn.net/xw1680?spm=1011.2124.3001.5113

    更多相关内容
  • zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体意思不好用文字来表述,直接看示例: 1.示例1: 复制代码 代码如下: x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) ...
  • zip函数用于同时遍历多个迭代器。 一、range 函数 range函数可创建一个整数列表,一般用在 for 循环中。 语法: range([start,] stop[, step]) 参数: start: 计数从 start 开始。默认是从 0 开始。例如range(5)...
  • zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。 ps. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组...
  • 主要介绍了Python zip函数打包元素实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Python的zip函数.pdf

    2021-08-26 15:23:24
    Python的zip函数.pdf
  • 今天小编就为大家分享一篇对Python的zip函数妙用,旋转矩阵详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 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循环,将三个新的元组打印出来
    展开全文
  • python中zip函数返回一个以元组为元素的列表,其中第 i 个元组包含每个参数序列的第 i 个元素。返回的列表长度被截断为最短的参数序列的长度。只有一个序列参数时,它返回一个1元组的列表。没有参数时,它返回一个空...
  • 本文主要介绍的是Python如何使用zip函数同时遍历多个迭代器,文中的版本为Python3,zip函数是Python内置的函数。下面话不多说,来看详细的内容。 应用举例 >>> list1 = ['a', 'b', 'c', 'd'] >>> list2 = ['apple...
  • Python学习系列之zip函数

    千次阅读 2021-01-12 11:37:05
    目录一、zip函数(内建函数)1.1 定义Python 2:zip()函数用于将可迭代的对象(字典,列表,元组,集合,字符串等)作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。Python 3:zip()函数...

    目录

    一、zip函数(内建函数)

    1.1 定义

    Python 2:zip() 函数用于将可迭代的对象(字典,列表,元组,集合,字符串等)作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

    Python 3:zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。我们可以使用 list() 转换来输出列表。

    Python2和Python3只是返回值不同,用法相同。

    如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

    zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。

    基本语法:

    zip([iterable, ...])

    参数说明:

    iterabl -- 一个或多个迭代器;

    返回值:

    Python2 返回元组列表。

    Python3 返回一个对象。

    示例:

    Python 2

    >>> a = [1,2,3]

    >>> b = [4,5,6]

    >>> c = [4,5,6,7,8]

    >>> zipped = zip(a,b) # 打包为元组的列表

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

    >>> zip(a,c) # 元素个数与最短的列表一致

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

    >>> zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式

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

    >>> list(zip(*zipped)[1]) # 与 zip 相反,*zipped 可理解为解压,严格讲还是元组列表,

    [4, 5, 6] # 不过元组可以转为列表

    Python 3

    >>> a = [1,2,3]

    >>> b = [4,5,6]

    >>> c = [4,5,6,7,8]

    >>> zipped = zip(a,b) # 返回一个对象

    >>> zipped

    >>> list(zipped) # list() 转换为列表

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

    >>> list(zip(a,c)) # 元素个数与最短的列表一致

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

    >>> zip(*zip(a,b))

    # 返回一个对象

    >>> list(zip(*zip(a,b)))

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

    >>> a1, a2 = zip(*zip(a,b)) # 与 zip 相反,zip(*) 可理解为解压,返回二维矩阵式

    >>> a1

    (1, 2, 3)

    >>> a2

    (4, 5, 6)

    >>> list(a1) # 转换为列表

    [1, 2, 3]

    >>> list(a2)

    [4, 5, 6]

    1.2 处理列表

    通过 zip() 函数及for循环对多个列表进行并行迭代:

    >>> days = ['Monday', 'Tuesday', 'Wednesday']

    >>> fruits = ['banana', 'orange', 'peach']

    >>> drinks = ['coffee', 'tea', 'beer']

    >>> desserts = ['tiramisu', 'ice cream', 'pie', 'pudding']

    >>> for day, fruit, drink, dessert in zip(days, fruits, drinks, desserts):

    ... print(day, ": drink", drink, "- eat", fruit, "- enjoy", dessert)

    ...

    Monday : drink coffee - eat banana - enjoy tiramisu

    Tuesday : drink tea - eat orange - enjoy ice cream

    Wednesday : drink beer - eat peach - enjoy pie

    zip() 函数在最短列表“用完”时就会停止。上面例子中的列表(desserts)是最长的,所以我们无法填充列表,除非人工扩展其他列表。按照最短列表停止遍历。使用 zip() 函数可以遍历多个列表,在具有相同位移的项之间创建元组。

    1.3 处理元组

    现在使用 zip() 函数配对两个元组。函数的返回值既不是元组也不是列表,而是一个整合在一起的可迭代变量(可迭代的元组):

    >>> english = 'Monday', 'Tuesday', 'Wednesday' # 这种创建的方式类型是元组

    >>> french = 'Lundi', 'Mardi', 'Mercredi'

    >>> list( zip(english, french) )

    [('Monday', 'Lundi'), ('Tuesday', 'Mardi'), ('Wednesday', 'Mercredi')]

    1.4 处理字典

    配合 dict() 函数和 zip() 函数的返回值就可以得到一本微型的英法词典:

    >>> dict( zip(english, french) )

    {'Monday': 'Lundi', 'Tuesday': 'Mardi', 'Wednesday': 'Mercredi'}

    构建字典:

    方法一:使用for循环

    k = ["a","b","c"]

    v = ["1","2","3"]

    d2 = {}

    for (k,v) in zip(k,v):d2[k]=v

    print d2

    方法二:使用dict

    k = ["a","b","c"]

    v = ["1","2","3"]

    list(zip(k,v))

    [('a', '1'), ('b', '2'), ('c', '3')]

    d3 = dict(zip(k,v)) # 类型转换

    print d3

    1.5 处理一个参数和空列表

    zip函数在只有一个参数时:

    x = [1, 2, 3]

    x = zip(x)

    print x

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

    zip函数在没有参数时:

    x = zip()

    print x

    []

    标签:函数,zip,Python,zipped,list,元组,列表

    来源: https://blog.csdn.net/answer3lin/article/details/86505410

    展开全文
  • Python中zip函数用法

    千次阅读 2021-03-17 17:21:10
    看openstack的代码,遇到一个内建函数zip不明白其意思:# Adjust the weights in the grid by the functions weight adjustment# and sum them up to get a final list of weights.adjusted_scores = []for (weight,...

    看openstack的代码,遇到一个内建函数zip不明白其意思:

    # Adjust the weights in the grid by the functions weight adjustment

    # and sum them up to get a final list of weights.

    adjusted_scores = []

    for (weight, fn), row in zip(weighted_fns, scores):

    adjusted_scores.append([weight * score for score in row])

    有一个简单易懂的例子,有2个列表A,B,A存了班级里的人的名字,B是每个人的考试分数,你需要通过某个人的名字来查考试分数,那你需要一个字典,zip可以很方便地帮你建立字典:

    >>> x=['bob','tom','kitty']

    >>> y=[80,90,95]

    >>>d=dict(zip(x,y))

    [('bob', 80), ('tom', 90), ('kitty', 95)]

    zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压),看下面的例子就明白了: >>> a = [1,2,3]

    >>> b = [4,5,6]

    >>> c = [4,5,6,7,8]

    >>> zipped = zip(a,b)

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

    >>> zip(a,c)

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

    >>> zip(*zipped)

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

    对于这个并不是很常用函数,下面举几个例子说明它的用法:

    * 二维矩阵变换(矩阵的行列互换)

    比如我们有一个由列表描述的二维矩阵

    a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

    通过python列表推导的方法,我们也能轻易完成这个任务

    print [ [row[col] for row in a] for col in range(len(a[0]))]

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

    另外一种让人困惑的方法就是利用zip函数:

    >>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

    >>> zip(*a)

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

    >>> map(list,zip(*a))

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

    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')]

    参考文献:

    http://blog.sina.com.cn/s/blog_7ae1b8300100x05p.html

    http://zhidao.baidu.com/question/403657760.html

    展开全文
  • 2. Python中的zip函数

    千次阅读 2022-02-20 20:28:53
    《Python编程的术与道:...zip函数 内置的 zip 函数可以并行的对多个可迭代对象进行处理。 The zip() function takes iterables (can be zero or more), aggregates them in a tuple, and return it. number_list = [1,
  • 【python】zip函数详解

    2021-10-03 11:51:10
    文章目录1.zip函数的作用2. 语法3. 转成列表4. 解压 zip(*iterables)5. *zip( ) 1.zip函数的作用 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象(python...
  • Python之zip函数相关介绍

    千次阅读 2020-12-06 03:14:47
    python3的zip函数zip函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个tuple,然后返回一个可迭代的zip对象。这个可迭代对象可以使用循环的方式列出其元素,若多个可迭代对象的长度不一致,则所返回...
  • Python教程:zip 函数的用法

    千次阅读 2022-03-08 14:58:09
    Python3.0开始,zip()函数已经不返回 list 了,而是返回 iterable(可迭代对象)。这个可迭代对象需要特别注意,只能进行一次迭代遍历,第二次遍历就是空了。这个坑了我一个多小时。 简单示例 a = [1, 2, 3] b = [4,
  • python中zip()函数用法举例 定义:zip([iterable, …])  zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)...
  • Python:zip函数的主要用途

    千次阅读 2022-03-26 22:37:57
    个人理解:zip函数主要用来将n个list中相同location的元素取出来,组成新的data years = [22,23,24] names = ['hjw','hyr','lyq'] a = zip(names,years) print(a) # <zip object at 0x000001A69F80F0C0> ...
  • zip函数,看的话都应该认识这是压缩的意思,但是怎么用呐? 这里写目录标题zip函数的用法zip(*zipped)的应用zip函数的具体应用 zip函数的用法 zip是用来压缩的,它接受一系列可迭代的对象作为参数,将对象中对应的...
  • Python zip函数及用法

    2020-12-17 21:46:46
    zip() 函数是Python内嵌函数之一,它能够将好几个序列(列表、元组、字典、结合、字符串数组及其 range() 区段组成的列表)“缩小”成一个 zip 目标。说白了“缩小”,实际上便是将这种序列中相匹配部位的原素重新排列...
  • lambda 函数 Python 支持一种有趣的语法,它允许你快速定义单行的最小函数。这些叫做 lambda 的函数,是从 Lisp 借用来的,可以用在任何需要函数的地方。 def f(x): return x*2,用lambda函数来替换可以写成:g = ...
  • Python zip函数

    2019-07-12 11:45:47
    Python内置函数zip() 介绍、使用方法和注意事项。
  • 主要介绍了python中使用zip函数出现<zip>错误的原因分析及解决方法,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 299,048
精华内容 119,619
关键字:

zip函数