广告
返回顶部
首页 > 资讯 > 后端开发 > Python >合并Python列表的方法有哪些
  • 355
分享到

合并Python列表的方法有哪些

2023-06-15 15:06:03 355人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“合并python列表的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我喜欢12这个数字,因为有太多的事情与12有关

本篇内容介绍了“合并python列表的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

我喜欢12这个数字,因为有太多的事情与12有关。一年有12个月;古代用12个时辰(地支)表示一天的时间。用一纪表示12年;希腊有12主神;黄道有12宫;撒迦利亚.西琴先生的《地球编年史》中描述的第12个天体(尼比鲁);另外,朋友、爱人、恋人、家人的笔画都是12。所以12注定是一个令人难忘的数字,现在我再为12加一种难忘的解释:用12种方法合并Python列表。

其实Python语言合并两个或多个列表的方法非常简单,直接使用加号(+)即可。不过在很多场景下,并不太适合使用"+"。列表中的值由于某些原因是分散开的,或需要去重,或者正处于迭代中,所以本文将为读者展示如果用多达12种方法合并两个或多个列表。

方法1:宇宙第一加号大法这是最简单的合并Python列表的方法,代码如下:

list1 = [1, 2, 3] list2 = [4, 5, 6]  result = list1 + list2 # [1, 2, 3, 4, 5, 6] print(result)

这个方法不用多解释,直接加就完了,既然加两个列表可以,加10000个列表当然也可以,或者放到循环里不断累加。

方法2:自动拆箱和装箱的星号大法

从Python  3.5开始,星号(*)就有了特殊的用途,将一个列表拆开,或将多个值组装成元组。如果将星号用作列表元素,并且这个列表元素也是一个列表的话,那么就会直接将列表中的值作为元素插入上一级的列表中,代码如下:

list1 = [1, 2, 3] list2 = [4, 5, 6]  result = list1 + list2 # [1, 2, 3, 4, 5, 6] print(result)

PS:双星(**)可以拆装字典,如果将单星和双星作为函数的参数,那么就是装箱,可以将离散的值组装成元组(单星)和字典(双星),代码如下:

import itertools list1 = [1, 2, 3] list2 = [4, 5, 6] # 直接合并 # [1, 2, 3, 4, 5, 6] result = [item for item in itertools.chain(list1, list2)] print(result) # 合并两个列表的同时,每一个列表元素的值加1 # [2, 3, 4, 5, 6, 7] result = [item + 1 for item in itertools.chain(list1, list2)] print(result)

方法3:可控合并,舍“迭代”其谁

前面两种合并列表的方式固然比较简单,但问题是,只能做到简单的合并,如果要做更复杂的合并(如在合并的过程中加工特定的列表元素)就无法做到了。所以在这种情况下可以使用迭代的方式单独处理每一个列表元素,我称这种合并方式为可控合并,代码如下:

import itertools list1 = [1, 2, 3] list2 = [4, 5, 6] # 直接合并 # [1, 2, 3, 4, 5, 6] result = [item for item in itertools.chain(list1, list2)] print(result) # 合并两个列表的同时,每一个列表元素的值加1 # [2, 3, 4, 5, 6, 7] result = [item + 1 for item in itertools.chain(list1, list2)] print(result)

方法4:强行转换的用处

通过chain类,可以将两个或多个列表变成一个chain对象,然后再将chain对象转换为list对象,代码如下:

from itertools import chain list1 = [1, 2, 3] list2 = [4, 5, 6] result = list(chain(list1, list2)) # [1, 2, 3, 4, 5, 6] print(result)

chain类构造方法的原型如下:

def __init__(self, *iterables)

显而易见,构造方法的iterables参数使用了单星(*),所以可以接收任意多个列表参数,例如,chain(list1, list2,  list3,list4,list5)是合法的,因此,本方法可以合并任意多个列表。

方法5:我不需要重复的值

有一种特殊的合并列表方式,就是去重,也就是说,如果合并的两个或多个列表中有重复的值,那么只保留一个相同的值即可。其实就是将合并后的结果变成集合,因此,可以用集合来解决这个问题,代码如下:

list1 = [1, 2, 3] list2 = [4, 3, 6] result = list(set(list1 + list2)) # [1, 2, 3, 4, 6] print(result)

这种合并列表的方式尽管使用了加号(+),但还使用set,所以应该属于一种新的合并方式,因为这种合并方式满足了特殊的需求:去重。

方法6:生成器大法

前面的几种方式都是使用了Python中的现成机制,现在来点复杂的:自定义转换函数。

这种合并列表的方式涉及到如下几种技术:

自定义Python函数

单星(*)作为函数参数

Python生成器(Generator)

 类型转换实现

代码如下:

list1 = [1, 2, 3] list2 = [4, 5, 6] list3 = [7, 8, 9] list4 = [10, 11, 12] list5 = ["hello", 20.1, True] # 合并函数,也是一个生成器 def merge(*iters):     for it in iters:         yield from it result = list(merge(list1, list2, 'abcd', [20, 21, 22],list3,list4,list5)) # [1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd', 20, 21, 22, 7, 8, 9, 10, 11, 12, 'hello', 20.1, True] print(result)

这段代码的merge是一个生成器形式的合并函数,而且使用了单星(*)作为参数类型,所以可以传入任意多个列表。本例合并了7个列表。其中'abcd'是一个字符串形式的列表,每一个列表元素是单个字符。

方法7:又看到for  in表达式了

Python简直将for做到了极致,提供了for in表达式。要注意,这是表达式,不是语句。所以可以用在其他表达式中,例如,用for  in表达式生成一个列表,代码如下:

list1 = [1, 2, 3] list2 = [4, 5, 6] # 如果是字母,会输出对应的ASCII result = [ord(item) if str(item).isalpha() else item for item in (list1 + list2 + list('abcd') + [20, 21, 22])] # [1, 2, 3, 4, 5, 6, 97, 98, 99, 100, 20, 21, 22] print(result)

这种方式适合于复制一个新的列表,而且可以在合并的过程中修改特定的列表值。

方法8:自身也可以被修改

在合并列表时,如果希望一个列表本身被修改,那么可以用这种方法。例如,合并A和B两个列表后,A本身变成了最终的修改结果,也就是说,将B追加到A的后面。实现代码如下:

list1 = [1, 2, 3] list2 = [4, 5, 6] result = [] result.extend(list1) result.extend(list2) # [1, 2, 3, 4, 5, 6] print(result) # [1, 2, 3, 4, 5, 6] list1.extend(list2) print(list1)

如果希望不修改参与合并的列表,那么可以定义一个空的列表。

方法9:Python函数库是个好东西,到处都是宝藏

Python有一个非常庞大的函数库,其中不乏用于合并列表的函数,其中operator模块中的add函数就是其中之一,其实add内部使用了加号(+)合并列表,不过这也应该算是一种方法,因为以后add函数可能会使用其他的方式合并列表。代码如下:

import operator list1 = [1, 2, 3] list2 = [4, 5, 6] result = operator.add(list1, list2) # [1, 2, 3, 4, 5, 6] print(result)

方法10:远在天边,近在眼前

前面介绍了一堆用于合并列表的api,其实列表类(list)本身就有一个__add__方法,用于合并两个列表,代码如下:

list1 = [1,2,3] list2 = [4,5,6]  result = list.__add__(list1, list2) # [1, 2, 3, 4, 5, 6] print(result)

方法11:来个最传统的方式介绍了这么多合并列表的方式,其实最传统的还是一个元素一个元素添加,也就是列表的append方法。那么可能很多同学要问,有这么多好的方式,为啥要一个元素一个元素添加呢?岂不是影响效率?其实这也要看情况。例如,在一些场景,列表的值已经被拆开了(为了处理其他的业务),那么就顺道使用append方法挨个添加了,反正已经被拆开了,不加白不加。

实现代码如下:

list1 = [1,2,3] list2 = [4,5,6] result = [] for elem in list1:     result.append(elem) for elem in list2:     result.append(elem) # [1, 2, 3, 4, 5, 6] print(result)

方法12:合并方式不够,外援来凑

其实Python中合并列表的方式也就这么多,好像只有11种,前面都说了,有12种,为了凑够12种,这里请了一个外援,这就是NumPy,这个库主要用于科学计算,对数据的处理比较强大,用NumPy合并Python列表的代码如下:

import numpy list1 = [1,2,3] list2 = [4,5,6]  result = numpy.concatenate([list1,list2]).tolist() print(result)

由于numpy.concatenate函数返回了numpy.ndarray类型,所以要得到Python列表对象,还需要使用tolist方法进行转换。NumPy是第三方库,所以需要使用下面的命令进行安装。

pip install numpy

“合并Python列表的方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 合并Python列表的方法有哪些

本文链接: https://www.lsjlt.com/news/280829.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 合并Python列表的方法有哪些
    本篇内容介绍了“合并Python列表的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我喜欢12这个数字,因为有太多的事情与12有关...
    99+
    2023-06-15
  • python数据表合并的方法有哪些
    这篇“python数据表合并的方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“py...
    99+
    2022-10-19
  • Python的列表方法有哪些
    本文小编为大家详细介绍“Python的列表方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python的列表方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。列表更多的方法index():返回指定...
    99+
    2023-06-29
  • Python列表的方法有哪些
    这篇文章主要介绍“Python列表的方法有哪些”,在日常操作中,相信很多人在Python列表的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python列表的方法有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-16
  • python 合并列表的八种方法
    目录1. 最直观的相加 2. 借助 itertools 3. 使用 * 解包4. 使用 extend 5. 使用列表推导式 6. 使用 heapq 7. 借助魔法方法 8. 使用 y...
    99+
    2022-11-11
  • python DataFrame的合并方法有哪些
    这篇文章主要介绍“python DataFrame的合并方法有哪些”,在日常操作中,相信很多人在python DataFrame的合并方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-07-02
  • python中合并两个列表的方法
    这篇文章主要介绍了python中合并两个列表的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python合并两个列表的方法:1、分别从两个列表中取出所有的元素,再放入新列...
    99+
    2023-06-14
  • python数组合并的方法有哪些
    Python中有多种方法可以合并数组,以下是其中一些常见的方法:1. 使用 "+" 运算符:可以使用 "...
    99+
    2023-08-23
    python
  • python列表的操作方法有哪些
    这篇“python列表的操作方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python列表的操作方法有哪些”文章吧...
    99+
    2023-06-30
  • python创建列表的方法有哪些
    本篇内容主要讲解“python创建列表的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python创建列表的方法有哪些”吧!1、使用[]包裹列表中,每一个元素都是通过逗号、分割的。元素...
    99+
    2023-06-20
  • Python列表的应用方法有哪些
    今天小编给大家分享一下Python列表的应用方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Python 集合(数组...
    99+
    2023-07-06
  • Python列表有哪些操作方法
    这篇文章将为大家详细讲解有关Python列表有哪些操作方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、向List中添加元素的方法1.1 Python append()方法添加元素append() 方...
    99+
    2023-06-25
  • Python中合并字典的方法有哪些
    这篇文章主要讲解了“Python中合并字典的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中合并字典的方法有哪些”吧!Python字典字典是Python中特有的数据结构...
    99+
    2023-06-16
  • Python中列表的创建方法有哪些
    Python中列表的创建方法有以下几种:1. 使用方括号 [] 来创建一个空列表:pythonmy_list = []2. 使用方括...
    99+
    2023-10-20
    Python
  • python创建空列表的方法有哪些
    Python创建空列表的方法有以下几种:1. 使用中括号 []```pythonempty_list = []```2. 使用 li...
    99+
    2023-08-09
    python
  • python中变量合并方法有哪些
    这篇文章主要为大家展示了“python中变量合并方法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python中变量合并方法有哪些”这篇文章吧。一、list 合并第一种方法:a ...
    99+
    2023-06-29
  • Python中有哪些列表操作方法
    Python中有哪些列表操作方法?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、append用于在列表末尾追加新的对象a = [1,2,3...
    99+
    2023-06-15
  • python列表新增元素的方法有哪些
    这篇文章将为大家详细讲解有关python列表新增元素的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、以追加的形式向列表末尾添加一个元素。>>> letters&n...
    99+
    2023-06-15
  • python列表添加元素的方法有哪些
    Python列表添加元素的方法有以下几种:1. 使用append()方法:可以将一个元素添加到列表的末尾。例如:list.appen...
    99+
    2023-09-22
    python
  • python给空列表赋值的方法有哪些
    有以下几种方法可以给空列表赋值:1. 使用赋值运算符(=)直接赋值:```my_list = []```2. 使用列表解析:```m...
    99+
    2023-08-15
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作