Python中合并列表(list)的六种方法

列表是Python中强大的数据结构,很多时候我们要对它进行增、删、改、查,其中增是常见的操作,一般通过合并列表的方法来实现。那么,如何把2个列表合并成多个列表呢?今天我们就来学习一下六种不同的方法。

一、直接用 + 合并列表

最简单的办法就是用 +,把两个列表加起来,实际上就是合并在了一起。

list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged_list = list1 + list2
print(merged_list) # 输出:[1, 2, 3, 4, 5, 6]

这种办法很直接,也很容易记,但是效率并不高,适合初学者直接连接两个元素不是特别多的列表。

二、用 extend() 方法

与append()进行元素追加的方法不同,extend() 方法可以把一个列表的内容追加加到另一个列表的末尾,就像这样:

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

注意哦,extend() 会改变原来的列表,不会创建一个新的。

三、用 zip() 函数交叉合并

如果你想交叉着合并两个列表,可以这么做:

lst1 = [1, 2, 3]  
lst2 = [4, 5, 6]  
merged_lst = [item for pair in zip(lst1, lst2) for item in pair]  
print(merged_lst)  # 输出:[1, 4, 2, 5, 3, 6]

这样会把两个列表里对应位置的元素交叉合并到一起,注意这里的列表没有按照原来的顺利进行。

四、用星号*解包列表后合并

我们都知道可以在python中用星号解包列表,解包完,我们可以把元素重新放到列表中,如下:

lst1 = [1, 2, 3]  
lst2 = [4, 5, 6]  
merged_lst = [*list1,*list2]  
print(merged_lst)  # 输出:[1, 2,3, 4, 5, 6]

五、用列表推导式合并

列表推导式可以用来合并列表,很简洁也很高效:

lst1 = [1, 2, 3]  
lst2 = [4, 5, 6]  
merged_lst = [item for sublist in [lst1, lst2] for item in sublist]  
print(merged_lst)  # 输出:[1, 2, 3, 4, 5, 6]

这种办法很灵活,执行速度也很快,能用来处理更复杂的合并操作。

六、用 itertools.chain() 合并

itertools.chain() 可以用来合并任意数量的列表或其他可以迭代的对象:

from itertools import chain  
lst1 = [1, 2, 3]  
lst2 = [4, 5, 6]  
merged_lst = list(chain(lst1, lst2))  
print(merged_lst)  # 输出:[1, 2, 3, 4, 5, 6]

在处理大量列表时,这个办法特别高效。但需要引入chain这个标准模块。因为是python自带的,所以并不需要安装。

七、学后总结

  1. 每种都有它的长处,可以根据需求选择最适合的方法。
  2. 合并列表或者字符串时要注意,合并的内容都是相同类型,不然无法合并,如列表和字符串就无法合并。因此,在编程过程中,有时需要对合并的内容的数据类型进行判断,然后再进行操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/8356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信社交平台的未来展望,2024微信的重点发展趋势

WeChat社交媒体平台概述 截至2024年,WeChat的月活跃用户超过13亿,预计到今年年底,WeChat用户将超过16.7亿。当然,全球WeChat用户数量的数字表明,该应用程序在世界上最受欢迎的应用程序中排名第五(仅次于Fa…

JAVA语言开发的:一套智慧校园平台主要由哪些系统组成、又有哪些前景呢?让我们一起来看一看

▶技术架构:后端:Java 框架:springboot 前端页面:vue 小程序:小程序原生开发 ▶电子班牌:Java Android 源码有演示,自主研发,官方正版授权,联系客服咨询&#xff0…

基于Linux中的 进程相关知识 综合讲解

目录 一、进程的基本概念 二、pid,ppid,fork函数 三、进程的状态讲解 四、进程的优先级 五、完结撒❀ 一、进程的基本概念 概念: ● 课本概念:程序的一个执行实例,正在执行的程序等 ● 内核观点:担当…

STM32 内嵌的自举程序

内嵌的自举程序(Embedded Bootloader)是嵌入在STM32微控制器内部的程序,用于在系统上电后加载用户应用程序。这个内嵌的自举程序通常被称为引导加载程序(Bootloader)。它的作用是在系统启动时负责初始化硬件环境&#…

高阶RAG-ReRank

1.背景-现RAG存在的问题 现在很明显,仅仅依靠向量检索技术不足以开发 RAG 应用程序,尤其是在生产环境中部署。 以下为案例: 关键词搜索容易返回不回答问题的结果稠密检索容易返回不正确的结果 实际RAG检索中也有很多类型问题,…

python基础---匿名函数

匿名函数 使用def定义的函数是一个普通的函数, 适合用于功能完善的代码 匿名函数使用lambda 定义 lambda value1, value2 ... : 表达式lambda a, b : a b调用 这一个函数没有名字, 使用的时候一般使用一个变量指向这一个函数, 之后使用这一个变量进行调用 my_test_func …

「活动预告」PolarDB走进青岛,邀请您一起畅游琴岛山海春韵,共话数据生态创新

预告 由PolarDB开源社区、海信聚好看、PostgreSQL中文社区共同发起的《开源数据库沙龙》,将于青岛举办。 时间地点 时间:2024年5月17日 13:00 地点:青岛市市南区香港中路17号 市政府3期『城市会客厅』 活动亮点 本次嘉宾汇聚海信、阿里…

如何缩小图片大小kb?6个压缩图片大小的软件教你快速压缩

如何缩小图片大小kb?6个压缩图片大小的软件教你快速压缩 当需要缩小图片的大小(KB)时,可以利用一系列专门设计的工具和软件来帮助完成这一任务。这些工具可以有效地减小图片的文件大小,而又不会明显降低图片的质量。以…

SARscape操作:GF3 数据预处理

1、设置 Prefrences 参数 点击 SARscape->Preferences->Preferences specific,弹出如下图所示的对话框; 点击 Load Preferences,在弹出的菜单栏中选择适用于GF3影像处理的 MR(between 10m and 30m) 模式; 点击 General p…

java实现方法重复调用防抖

防抖含义:在指定延时时间内,不管调用了多少次方法,只会执行最后一次调用的动作去执行方法。 举例:设定延时为5秒,调用防抖方法后,5秒内没有重复调用则会执行动作,5秒内有重复调用则会继续再延时等待五秒&am…

CFETS系统介绍

CSTP服务是什么 CSTP(CFETS Straight Through Process)是交易中心为外汇市场提供的数据直通式处理接口服务。用户通过标准式接口将本方交易数据直接从交易中心的服务器接收下来,根据需要对数据进行处理并导入到中、后台系统。其基本功能包括…

双非二本找工作前的准备day23

学习目标: 每天复习代码随想录上的题目1-2道算法(时间充足可以继续) 今日碎碎念: 1)滴滴开了暑期实习。 2)今天开始是回溯篇,然后是贪心以及dp,保持打卡!加油啦&#…

解析直播美颜SDK:计算机视觉在实时视频中的应用

今天,小编将带大家深入探讨直播美颜SDK的原理、应用及其在实时视频中的重要性。 一、直播美颜SDK的原理 直播美颜SDK的核心原理是基于计算机视觉技术,通过识别人脸、肤色、眼睛、嘴巴等关键特征点,对视频图像进行实时处理。其主要包括以下几…

milvus2.4多向量搜索源码分析

milvus2.4多向量搜索源码分析 api入口 HybridSearch是多向量搜索的API。 func (node *Proxy) HybridSearch(ctx context.Context, request *milvuspb.HybridSearchRequest) (*milvuspb.SearchResults, error) {var err errorrsp : &milvuspb.SearchResults{Status: merr…

【前端】-【前端文件操作与文件上传】-【前端接受后端传输文件指南】

目录 前端文件操作与文件上传前端接受后端传输文件指南 前端文件操作与文件上传 一、前端文件上传有两种思路: 二进制blob传输:典型案例是formData传输,相当于用formData搭载二进制的blob传给后端base64传输:转为base64传输&…

基于StatefulSet控制器在Kubernetes上部署MySQL一主多从

一、前提--StatefuSet特性 1.1 有状态的节点控制器 -- StatefulSet 及其网络状态 容器的解决方案是针对无状态应用场景的最佳实践,但对于有状态应用来说,就并非如此了。Kubernetes 用 StatefulSet 解决了有状态应用编排的问题,本文我们就来…

短视频账号没流量怎么办?三个方法提高播放量!沈阳短视频剪辑线下培训

做短视频的最怕什么? 最怕没流量啊,一旦没有流量,就吸引不到粉丝,更别提变现了! 但是,不同的短视频账号遇到没流量的情况是不同的。有的是新账号,始终没有流量;而有的是做了很久的账…

旧衣回收小程序开发:线上回收模式成为行业发展趋势

当下人们生活水平在不断提高,对衣服的要求也在增加,更新速度越来越快,闲置下来的旧衣服也在增加,为了减少浪费,旧衣回收行业受到了大众的关注。旧衣回收对我国资源回收、环境保护具有非常大的意义。 在互联网时代下&a…

第9篇:创建Nios II工程之读取Switch的值<二>

Q:上一期我们完成了Quartus硬件工程部分,本期我们创建Nios II软件工程这部分。 A:创建完BSP和Nios II Application之后,在source文件main.c中添加代码:system.h头文件中新增了Switch PIO IP的硬件信息,包括…

Windows cmd bat之特殊符号及变量

cmd 常用变量 bat批处理常用命令 %1~%9表示拖入文件(%0以外的输入文件),%0表示批处理文件本身 %0~%1字母意思基本相同,不区分大小写 ::打印当前窗口地址 echo “%cd%” %0 获取当前文件路径 %~d0 …