专栏首页未闻Code一日一技:一行代码把包含二元组的列表拆成两个列表

一日一技:一行代码把包含二元组的列表拆成两个列表

我们知道,当我们有两个长度一样的列表的时候,可以使用 zip快速把它组合起来。例如:

>>> a = [1, 2, 3, 4]
>>> b = ['x', 'y', 'x', 'w']
>>> c = list(zip(a, b))
>>> c[(1, 'x'), (2, 'y'), (3, 'x'), (4, 'w')]

那么,Python有没有 unzip呢?如果我现在给你一个包含二元组的列表,如何把每一个二元组拆开?

例如,我给你:

[(1, 'x'), (2, 'y'), (3, 'x'), (4, 'w')]

我需要你返回给我两个列表 ab,使得:

a的值为 [1,2,3,4],b的值为 ['x','y','x','w']

肯定有同学会这样写:

c = [(1, 'x'), (2, 'y'), (3, 'x'), (4, 'w')]
a = []
b = []
for x in c:  
  a.append(x[0])    
  b.append(x[1])
print(a)
print(b)

那么有没有简单一点的办法呢?

实际上是有的,我们来看看:

>>> c = [(1, 'x'), (2, 'y'), (3, 'x'), (4, 'w')]
>>> a, b = zip(*c)
>>> a(1, 2, 3, 4)
>>> b('x', 'y', 'x', 'w')

就这么简单,不需要循环,再用一次zip,就能把二元组直接拆开了。

本文分享自微信公众号 - 未闻Code(itskingname)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-02-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一日一技:使用doctest测试Python代码的注释

    如果大家看过一些有名的Python开源项目,你可能会看到他们在文档型注释里面,出现了下面这样的使用示例:

    青南
  • 一日一技:不等长度列表的同时迭代

    有两个列表 [1,2,3]和 ['a','b','c'],当我们想对他们同时迭代的时候,可以这样写:

    青南
  • 为什么你需要少看中文技术博客以及如何在Python里面精确四舍五入

    如果你在Google或者百度上搜索,你会发现大量的来自CSDN或者简书上面的文章讲到这一点,但是他们的说法无外乎下面几种:

    青南
  • 11.python zip函数

    zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,返回的结果可以直接强转为list列表,这样做的好处...

    猿说编程[Python和C]
  • 俩程序员结婚还有救吗?

    俩程序员结婚还有救吗? 1.共同的敌人 生活中要么各玩各的 要么一起骂产品经理 无论2人之间有什么矛盾 只要一起骂产品经理就都能解决 ? 2.bug 她:“这什...

    Java高级架构
  • 蚂蚁金服融资140亿美元估值多达四个版本,1500亿美元高还是低?

    蚂蚁金服6月8日宣布,完成了最新一笔总金额高达140亿美元的融资,其中包括了人民币资金以及蚂蚁金服旗下全资子公司蚂蚁国际筹集的美元资金。除原有股东继续跟投外,新...

    罗超频道
  • Golang 语言--linux 下 go语言 vim设置

    在linux下安装 vundle.vim,请参照https://github.com/VundleVim/Vundle.vim获取和配置 打开.vimrc,如果...

    李海彬
  • AutoML研究综述:让AI学习设计AI

    选自 arXiv 作者:Marc-André Zöller、Marco F. Huber

    机器之心
  • 盘点丨入门必读 机器学习六大开发语言

    机器学习的初学者,普遍需要面对一个问题: 到底学习哪个编程语言? 答案可能会让你惊讶:对高手来说,这关系不大。只要你了解所选语言的机器学习库和工具,语言本身其实...

    AI科技评论
  • 一文看懂如何使用模型转换工具X2Paddle

    深度学习的应用主要包括两个部分,一是通过深度学习框架训练出模型,二是利用训练出来的模型进行预测。

    量子位

扫码关注云+社区

领取腾讯云代金券