zip 返回一个将多个可迭代对象组合成一个元组序列的迭代器。

1.  循环多个list的数据:

 letters = ['a', 'b', 'c']
nums = [1, 2, 3] for letter, num in zip(letters, nums):
print("{}: {}".format(letter, num))

2. 将多个list的数据组合成tuple的list:

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

 # 得到: [('a', 1), ('b', 2), ('c', 3)].

3. 将tuple组成的list拆分成多个tuple:

 some_list = [('a', 1), ('b', 2), ('c', 3)]
letters, nums = zip(*some_list) #结果
# letters: ('a', 'b', 'c')
# nums: (1, 2, 3)

*注意,即使不是list,而是tuple,依然可以拆分,拆分后的结果都是tuple:

some_list = (('a', 1), ('b', 2), ('c', 3))
letters, nums = zip(*some_list) #结果同上

*注意,即使不是tuple,是list,依然可以拆分,拆分后的结果都是tuple:

some_list = [['a', 1], ['b', 2], ['c', 3]]
letters, nums = zip(*some_list)

举个栗子:

# 将 data 从 4x3 矩阵转置成 3x4 矩阵。

data = ((0, 1, 2), (3, 4, 5), (6, 7, 8), (9, 10, 11))

data_transpose = zip(*data)

# 结果:
[(0, 3, 6, 9), (1, 4, 7, 10), (2, 5, 8, 11)]

*值得注意的是:

zip 用于整合数据的时候,返回的是一个可迭代的迭代器,可以用来循环,也可以通过 list() , tuple() 方法把它变成list或tuple

zip 用于拆分数据的时候,可以拆分list,拆分tuple,但返回的总是一个list,并且list的每个元素都是tuple

python-zip方法的更多相关文章

  1. python zip()函数

    描述 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符 ...

  2. Python join() 方法与os.path.join()的区别

    Python join() 方法与os.path.join()的区别 pythonJoinos.path.join 今天工作中用到python的join方法,有点分不太清楚join() 方法与os.p ...

  3. 【转】Python zip() 函数

    转自:http://www.runoob.com/python/python-func-zip.html 描述 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回 ...

  4. Python swapcase()方法

    首先,要明白Python swapcase() 方法用于对字符串的大小写字母进行转换. 其次,了解swapcase()方法语法:str.swapcase() 返回值:返回大小写字母转换后生成的新字符串 ...

  5. python字符串方法的简单使用

    学习python字符串方法的使用,对书中列举的每种方法都做一个试用,将结果记录,方便以后查询. (1) s.capitalize() ;功能:返回字符串的的副本,并将首字母大写.使用如下: >& ...

  6. Python capitalize()方法

    Python capitalize()方法 capitalize()方法返回字符串的一个副本,只有它的第一个字母大写.对于8位的字符串,这个方法与语言环境相关. 语法 以下是capitalize()方 ...

  7. Python 字符串方法详解

    Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息.        ...

  8. Python isdigit()方法

    描述 Python isdigit() 方法检测字符串是否只由数字组成. 语法 isdigit()方法语法: str.isdigit() 参数 无. 返回值 如果字符串只包含数字则返回 True 否则 ...

  9. Python str方法总结

    1.返回第一个字母大写 S.capitalize(...) S.capitalize() -> string 1 2 3 4 >>>a = 'shaw' >>> ...

  10. Python list方法总结

    1. 向列表的尾部添加一个新的元素 append(...) L.append(object) -- append object to end 1 2 3 4 >>> a = ['sa ...

随机推荐

  1. PLSQL创建DBLINK

    Oracle创建dblink,多用于数据的同步机制.不建议直接用dblink对数据库频繁的操作... 00.查看创建dblink权限 select * from user_sys_privs t wh ...

  2. Arduino和C51开发光敏传感器

    技术:51单片机.Arduino.光敏传感器.PCF8591.AD/DA转换   概述 本文介绍了如何接收传感器的模拟信号和如何使用PCF8591 AD/DA转换模块对光敏传感器的模拟信号进行转换.讲 ...

  3. Git 经常使用命令合集

    ====== Git 经常使用命令合集 ====== === 1.Git 文档 ===     Git 中文文档观看地址:http://git.oschina.net/progit/      === ...

  4. sqlserver的convert函数

    定义和用法 CONVERT() 函数是把日期转换为新数据类型的通用函数. CONVERT() 函数可以用不同的格式显示日期/时间数据. 语法 CONVERT(data_type(length),dat ...

  5. hihocoder第229周:最大连续字母个数

    题目链接 给定一个仅包含小写字母的字符串s(长度小于1e5),你可以交换任意两个字符的位置,现在允许交换k次,要求交换之后,s中最长的连续相同字符个数尽量多,求这个最长连续区间的长度. 样例 输入 1 ...

  6. 实现iOS序列化与反序列化(runtime)

    一.变量声明 为便于下文讨论,提前创建父类Biology以及子类Person: Biology: @interface Biology : NSObject { NSInteger *_hairCou ...

  7. Windows Sockets错误标识及对应解释

    WSAETIMEDOUT 对应 linux 的 ETIMEDOUT WSAETIMEDOUT 对应 linux 的 ETIMEDOUT IdWinsock2.pas 文件中也有说明. Windows ...

  8. Apache 日志设置不记录指定文件类型的方法和日志轮

    Apache日志精准的记录了Web访问的记录,但对于访问量很大的站来说,日志文件过大对于分析和保存很不方便.可以在http.conf(或虚拟主机设置文件httpd-vhosts.conf)中进行设置, ...

  9. 通用MYSQL5.5和5.6源码包安装

    系统:REDHAT 6.3安装方式:最小化安装1.MYSQL5.5源码安装环境,依懒的安装包 yum install make gcc gcc-c++ ncurses-devel openssl-de ...

  10. MySQL的keepalived高可用监控脚本

    MySQL的keepalived高可用监控脚本 MySQL(或者其它服务)的keepalived高可用监控脚本 开发脚本需求 :我们知道,keepalive是基于虚拟ip的存活来判断是否抢占maste ...