资讯专栏INFORMATION COLUMN

如何通过列表推导式合并两个list?

jsyzchen / 983人阅读

摘要:如何合并两个长度相等的示例输入输出方案遍历两个数组传入的的长度需要相等上面给出了一个简单的示例,就是通过一次带有索引循环每次循环中将两个中对应的元素插入新的。

如何合并两个长度相等的list?

示例:

输入:

list1: [1, 2, 3]

list2: ["a", "b", "c"]

输出:

[1, "a", 2, "b", 3, "c"]

方案1: 遍历两个数组
def interleave_by_loop(list1, list2):
    if len(list1) != len(list2):
        raise ValueError("传入的list的长度需要相等")

    new_list = []
    for index, value in enumerate(list1):
        new_list.append(value)
        new_list.append(list2[index])
    return new_list


list1 = [1, 2, 3]
list2 = ["a", "b", "c"]

if __name__ == "__main__":
    print(interleave_by_loop(list1, list2))
    # [1, "a", 2, "b", 3, "c"]
    

上面给出了一个简单的示例,就是通过一次带有索引for循环
每次循环中将两个list中对应的元素插入新的list。

上面的方法可能是个比较通用的做法,但是在Python中可以写的简洁一点

方案2
def interleave(list1, list2):
    return [val for pair in zip(list1, list2) for val in pair]


list1 = [1, 2, 3]
list2 = ["a", "b", "c"]

if __name__ == "__main__":
    print(interleave(list1, list2))
    # [1, "a", 2, "b", 3, "c"]
    

这里,我们首先观察下代码,首先

zip(list1, list2) 把两个列表合并成一个元组列表

然后我们通过for循环得到一个个元组

最后把元组解析成我们的列表

其实,我们还可以修改下我们的函数,使得我们的函数更加具有通用性

def interleave(*args):
    return [val for pair in zip(*args) for val in pair]


list1 = [1, 2, 3]
list2 = ["a", "b", "c"]
list3 = ["github", "google.com", "so"]

if __name__ == "__main__":
    print(interleave(list1, list2, list3))
    # [1, "a", "github", 2, "b", "google.com", 3, "c", "so"]
    

这样我们的函数就可以接受任意多个列表了!

https://github.com/fish-bugs/...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43831.html

相关文章

  • python面试常见问题

    摘要:和的的区别和的的区别返回列表,返回迭代器,节约内存当后面没有元素可以的时候,弹出错误等是可迭代的但不是迭代器,因为函数无法调用它们。等是可迭代的但不是迭代器,因为函数无法调用它们。 ...

    Simon_Zhou 评论0 收藏0
  • 编写高效且优雅的 Python 代码(1)

    摘要:查看原函数的参数注释甚至函数名的时候,只能看到装饰器的相关信息。也就是说,它是装饰器的装饰器,并且以原函数为参数,作用是保留原函数的各种信息,使得我们之后查看被装饰了的原函数的信息时,可以保持跟原函数一模一样。 貌似只能创建一个专栏,所以这篇文章只好放到JavaScript从前端到全终端里了? 原文链接:Effective Python Python 作为一门入门极易并容易上瘾的语...

    roadtogeek 评论0 收藏0
  • Python 进阶之路 (八) 最用心的推导详解 (附简单实战及源码)

    摘要:什么是推导式大家好,今天为大家带来问我最喜欢的推导式使用指南,让我们先来看看定义推导式是的一种独有特性,推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 什么是推导式 大家好,今天为大家带来问我最喜欢的Python推导式使用指南,让我们先来看看定义~ 推导式(comprehensions)是Python的一种独有特性,推导式是可以从一个数据序列构建另一个新的数据序列的结构体。...

    hufeng 评论0 收藏0
  • python基础教程:list(列表)

    摘要:计算列表所有元素的和,其元素类型必须是数值型的整数浮点数返回一个排序的列表,但并不改变原列表。只有列表所有元素为才返回。列表的内置方法前面我们说的是语言的内置函数,这里我们讲的是列表本身的内置方法。 Python的基本数据类型有整数,浮点数,布尔,字符串,它们是最基本的数据。在实际编程中,我们要经常组织由很多基本数据组成的集合,这些集合的不同组织方式就是:数据结构,今天讲的是数据结构中...

    hearaway 评论0 收藏0
  • Python如何推导处理数据

      小编写这篇文章的主要目的,就是给大家介绍下关于如何使用Python处理推导数据的方式,下面给大家贴出具体的代码,大家要进行仔细的阅读哦。  前言  推导式是一种独特的数据处理方式,可以快速的从一个数据序列构建另一个新的数据序列的结构体。常用的推导式有一下四种:  列表推导式  元组推导式  集合推导式  字典推导式  1、列表推导式 #coding:utf-8   #Author:YangXi...

    89542767 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<