python中利用非循环的方法将两个List列表中的内容进行合并

在处理字符串、目录和排序信息的时候,经常需要将两个列表进行合并。但利用for循环逐个插入会十分繁琐,利用下面的方法可以快速方便的进行列表内容的合并。

1.+运算直接合并

list_a = ['a','b','c']
list_b = ['d','e','f','g']
list_ab = list_a + list_b
print(list_ab)

>>> ['a', 'b', 'c', 'd', 'e', 'f', 'g']
由于列表可以保存各类对象,所以内容类型不同的列表也可以合并:

list_num = [1,2,3,4,5]
list_set = [{0},{1}]
list_dict = [{'key0':0},{'key1':1}]
list_mix = list_a + list_num + list_set + list_dict
print(list_mix)

>>> ['a', 'b', 'c', 1, 2, 3, 4, 5, set([0]), set([1]), {'key0': 0}, {'key1': 1}]

2.extend()方法

list_a = ['a','b','c']
list_b = ['d','e','f','g']
list_a.extend(list_b)
print(list_a)

>>> ['a', 'b', 'c', 'd', 'e', 'f', 'g']
这种方法直接在原有列表后加上了需要合并的新列表,扩增的原有的列表。
内存位置没有改变,内容被扩充,可以借助id()函数来查看:

list_a = ['a','b','c']
id1 = id(list_a)
list_b = ['d','e','f','g']
list_a.extend(list_b)
id2 = id(list_a)
print(id1==id2)

>>> True

3.基于slice的插入

list_a = ['a','b','c']
list_b = ['d','e','f','g']
list_a[0:0] = list_b    #列表中[n,n],表示在列表的第n+1个位置,将对应列表逐个元素插入合并
print(list_a)
#千万不能写成  list_a[0] = list_b,这会使得list_a[0]变为一个列表,而不是列表内的元素。

>>> ['d', 'e', 'f', 'g', 'a', 'b', 'c']

也可以修改位置,灵活变更合并的序列在原列表中的位置:

list_a = ['a','b','c']
list_b = ['d','e','f','g']
list_a[-1:-1] = list_b    #合并至最末尾
print(list_a)

>>> ['a', 'b', 'd', 'e', 'f', 'g', 'c']

合并到第二个位置:

list_a = ['a','b','c']
list_b = ['d','e','f','g']
list_a[1:1] = list_b   #合并至第二个位置
print(list_a)

>>> ['a', 'd', 'e', 'f', 'g', 'b', 'c']

*4.“指针”/解包操作

Python >= 3.5 PEP 448中可以使用*来进行类似指针的操作:

list_a = ['a','b','c']
list_b = ['d','e','f','g']
list_ab = [*list_a,*list_b]
print(list_ab)

>>> ['a', 'b', 'c', 'd', 'e', 'f', 'g']

ref:
https://www.jdoodle.com/python3-programming-online
https://www.tutorialspoint.com/index.htm
http://www.compileonline.com/index.htm
https://www.onlinegdb.com/online_python_interpreter
https://www.python.org/dev/peps/pep-0448/
https://stackoverflow.com/questions/1720421/how-to-concatenate-two-lists-in-python
https://blog.csdn.net/ppdyhappy/article/details/53213349
https://blog.csdn.net/fragmentalice/article/details/81363494
https://www.cnblogs.com/qingyuanjushi/p/8409949.html
https://blog.csdn.net/roytao2/article/details/54180182


picture from pexels.com

【python】 合并列表的方法相关推荐

  1. Python合并列表与元组

    Python合并列表与元组 知识总结: 列表前面加星号可将列表内容解开成独立的元素.(元组相同) 如代码: a = [1 for _ in range(5)] a1 = (2 for _ in ran ...

  2. Python:字典列表字符串方法测试

    测试的一些Python中的关于字典.列表.字符串的使用方法,放在这里备查. 整个测试代码和说明如下: # -*- coding: utf-8 -*- """Python: ...

  3. Python List 列表list()方法

    Python基础数据类型之一列表list,在python中作用很强在,列表List可以包含不同类型的数据对像,同时它是一个有序的集合.所有序列能用到的标准操作方法,列表也都可以使用,比如切片.索引等, ...

  4. Python List 列表list()方法分享

    Python基础数据类型之一列表list,在python中作用很强在,列表List可以包含不同类型的数据对像,同时它是一个有序的集合.所有序列能用到的标准操作方法,列表也都可以使用,比如切片.索引等, ...

  5. python打乱列表的方法_python打乱列表

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 随机打乱列表中的元素自己写函数用于随机打乱列表中的元素方案一:交换法随机选取原列 ...

  6. python合并列表重新排序_python实现的合并两个排序的列表

    python实现的将两个排好序的列表进行排序: #!/usr/bin/python def megre(A, p, q, r): n1 = q - p + 1 n2 = r - q L = [None ...

  7. python合并列表重新排序_python – 将两个已排序的列表合并为一个更大的排序列表...

    我正在尝试创建一个合并函数,将在我正在进行的合并排序中使用. 我遇到了一些麻烦,我似乎无法找到错误. 我评论它试图向你们展示我的思考过程: def merge(aList, bList): newLi ...

  8. python获取列表长度方法_python - 在Pandas df列中获取有关列表长度(平均长度,最大长度等)的统计信息的大多数pandas-onic方法 - 堆栈内存溢出...

    我想获取有关pandas df列中列表长度的统计信息,例如平均长度,最低,最高,标准差等. 例: import pandas as pd dfp = pd.DataFrame( {'trial_num ...

  9. python清空列表的方法

    1.大数据量的list,要进行局部元素删除,尽量避免用del随机删除,非常影响性能,如果删除量很大,不如直接新建list,然后用下面的方法释放清空旧list. 2.对于一般性数据量超大的list,快速 ...

最新文章

  1. url获取网站信息不包含网页源文件内的标签_前嗅ForeSpider链接抽取应用场景及链接在源码的html标签里写脚本...
  2. kindeditor上传图片的大小在哪控制
  3. [转]基于Prototype,利用Canvas绘图实现的web流程图设计器(原型)
  4. php保存成乱序,PHP实现断点续传乱序合并文件的方法
  5. wxWidgets:支持插件的程序
  6. php在图片上绘制汉字之imageTtfText()函数
  7. Windows 之 删除文件出现“该项目不在请确认该项目的位置”
  8. java 数组去重_java面试题:数组去重
  9. 做数据分析的目的是什么
  10. html去空格函数,trimleft_js trim函数 js去空格函数与正则
  11. 2017年IT类公司世界500强企业及其简评
  12. SQL注入双引号报错注入
  13. windows当服务器不稳定,Win10上网不稳定经常掉线该如何解决?方法分享
  14. 基于java的自驾游自助游旅游网站
  15. 计算机应用基础7次作业答案,北京中医药大学远程教育“计算机应用基础”第7次作业(14页)-原创力文档...
  16. 万字长文,带你入门异步编程
  17. 面向对象和面向过程~~编程思想
  18. jdk-7u80-linux-i586.tar.gz
  19. PHP CURL HTTP 研究笔记
  20. 铁路RFID工具柜,机场RFID维修工具柜,RFID智能工具管理柜,智能枪械柜用了哪些技术呢?

热门文章

  1. linux内核那些事之mmap
  2. Conv2d中的groups参数(分组卷积)怎么理解? 【分组卷积可以减少参数量、且不容易过拟合(类似正则化)】
  3. 【Tensorflow】tf.nn.depthwise_conv2d如何实现深度卷积?+深度可分离卷积详解
  4. kafka通过控制台模拟消息发送和消息接收正常,但是通过javaAPI操作生产者发送消息不成功 消费者接收不到数据解决方案?
  5. PHP短网址链接在线生成源码 带后台
  6. 一套即时通讯聊天程序源码 VUE写的
  7. 自适应个人收款页HTML源码
  8. 基于 Springboot 和 Mybatis 的后台管理系统 BootDo
  9. 创业号官网自建系统软件 v3.1
  10. 百度SEO站群PHP进销存源码ERP多仓库管理源码