Python list列表添加元素的3种方法

news2024/11/21 2:38:28

实际开发中,经常需要对​ Python 列表 ​进行更新,包括向列表中添加元素、修改表中元素以及删除元素。本节先来学习如何向列表中添加元素。

使用+运算符可以将多个序列连接起来;列表是序列的一种,所以也可以使用+进行连接,这样就相当于在第一个列表的末尾添加了另一个列表。

请看下面的演示:

 
  1. ​ language = ["Python", "C++", "Java"] ​
  2. birthday = [1991, 1998, 1995]
  3. info = language + birthday
  4. print("language =", language)
  5. print("birthday =", birthday)
  6. print("info =", info)

运行结果:

language = ['Python', 'C++', 'Java']
birthday = [1991, 1998, 1995]
info = ['Python', 'C++', 'Java', 1991, 1998, 1995]

从运行结果可以发现,使用+会生成一个新的列表,原有的列表不会被改变。

+更多的是用来拼接列表,而且执行效率并不高,如果想在列表中插入元素,应该使用下面几个专门的方法。

Python append()方法添加元素

append() 方法用于在列表的末尾追加元素,该方法的语法格式如下:

listname.append(obj)

其中,listname 表示要添加元素的列表;obj 表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等。

请看下面的演示:

 
  1. l = ['Python', 'C++', 'Java']
  2. #追加元素
  3. l.append('PHP')
  4. print(l)
  5. #追加元组,整个元组被当成一个元素
  6. t​ = ('JavaScript', 'C#', 'Go') ​
  7. l.append(t)
  8. print(l)
  9. #追加列表,整个列表也被当成一个元素
  10. l.append(['Ruby', 'SQL'])
  11. print(l)

运行结果为:

['Python', 'C++', 'Java', 'PHP']
['Python', 'C++', 'Java', 'PHP', ('JavaScript', 'C#', 'Go')]
['Python', 'C++', 'Java', 'PHP', ('JavaScript', 'C#', 'Go'), ['Ruby', 'SQL']]

可以看到,当给 append() 方法传递列表或者元组时,此方法会将它们视为一个整体,作为一个元素添加到列表中,从而形成包含列表和元组的新列表。

Python extend()方法添加元素

extend() 和 append() 的不同之处在于:extend() 不会把列表或者元祖视为一个整体,而是把它们包含的元素逐个添加到列表中。

extend() 方法的语法格式如下:

listname.extend(obj)

其中,listname 指的是要添加元素的列表;obj 表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等,但不能是单个的数字。

请看下面的演示:

 
  1. l = ['Python', 'C++', 'Java']
  2. #追加元素
  3. l.extend('C')
  4. print(l)
  5. #追加元组,元祖被拆分成多个元素
  6. t = ('JavaScript', 'C#', 'Go')
  7. l.extend(t)
  8. print(l)
  9. #追加列表,列表也被拆分成多个元素
  10. l.extend(['Ruby', 'SQL'])
  11. print(l)

运行结果:

['Python', 'C++', 'Java', 'C']
['Python', 'C++', 'Java', 'C', 'JavaScript', 'C#', 'Go']
['Python', 'C++', 'Java', 'C', 'JavaScript', 'C#', 'Go', 'Ruby', 'SQL']

Python insert()方法插入元素

append() 和 extend() 方法只能在列表末尾插入元素,如果希望在列表中间某个位置插入元素,那么可以使用 insert() 方法。

insert() 的语法格式如下:

listname.insert(index , obj)

其中,index 表示指定位置的索引值。insert() 会将 obj 插入到 listname 列表第 index 个元素的位置。

当插入列表或者元祖时,insert() 也会将它们视为一个整体,作为一个元素插入到列表中,这一点和 append() 是一样的。

请看下面的演示代码:

 
  1. l = ['Python', 'C++', 'Java']
  2. #插入元素
  3. l.insert(1, 'C')
  4. print(l)
  5. #插入元组,整个元祖被当成一个元素
  6. t = ('C#', 'Go')
  7. l.insert(2, t)
  8. print(l)
  9. #插入列表,整个列表被当成一个元素
  10. l.insert(3, ['Ruby', 'SQL'])
  11. print(l)
  12. #插入字符串,整个字符串被当成一个元素
  13. l.insert(0, "http://c.biancheng.net")
  14. print(l)

输出结果为:

['Python', 'C', 'C++', 'Java']
['Python', 'C', ('C#', 'Go'), 'C++', 'Java']
['Python', 'C', ('C#', 'Go'), ['Ruby', 'SQL'], 'C++', 'Java']
['http://c.biancheng.net', 'Python', 'C', ('C#', 'Go'), ['Ruby', 'SQL'], 'C++', 'Java']

提示,insert() 主要用来在列表的中间位置插入元素,如果你仅仅希望在列表的末尾追加元素,那我更建议使用 append() 和 extend()。

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

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

相关文章

Linux配置成代理服务器

Linux配置成代理服务器 什么是代理服务器 把Linux配置成代理服务器 开放的代理服务器 升级需要账号密码的代理服务器 Linux系统使用代理服务器 临时通过代理访问 永久通过代理访问 Windows系统使用代理服务器 什么是代理服务器 代理服务器(Proxy Server&am…

《动手学深度学习 Pytorch版》 4.5 权重衰减

4.5.1 范数与权重衰减 整节理论,详见书本。 4.5.2 高维线性回归 %matplotlib inline import torch from torch import nn from d2l import torch as d2l# 生成一些数据,为了使过拟合效果更明显,将维数增加到 200 并使用一个只包含 20 个样…

vue3中使用el-upload + tui-image-editor进行图片处理

效果如下 看之前请先看上一篇《vue3中使用组件tui-image-editor进行图片处理》中的 1、第一步安装 2、第二部封装组件 本篇只是在这基础上结合el-upload使用组件 3、第三步结合el-upload使用组件 <template><el-dialog:title"dialogTitle":modelValue&qu…

004-Windows下开发环境搭建

Windows下开发环境搭建 文章目录 Windows下开发环境搭建项目介绍版本控制工具Git 与 SVNWindow下安装Git Qt 开发工具静态编译Qt环境安装 串口模拟器比较工具SQLite 数据库查看小工具预告 关键字&#xff1a; Qt、 Qml、 开发环境、 Windows、 C 项目介绍 欢迎来到我们的 …

Elastic Universal Profiling™ 是一种连续分析解决方案,现已正式上市

作者&#xff1a;Israel Ogbole, Stephanie Boomsma 在软件无处不在且影响深远的世界中&#xff0c;效率的重要性不仅仅局限于业务范围。 高效的软件不仅有利于企业&#xff0c;而且有利于企业。 这对全球也有好处。 通过将计算效率作为核心目标&#xff0c;并为专业人员提供正…

WebGL光照介绍——平行光、环境光下的漫反射

目录 光照原理 光源类型 平行光 点光源 环境光 反射类型 漫反射 漫反射光颜色 计算公式 环境反射 环境反射光颜色 表面的反射光颜色&#xff08;漫反射和环境反射同时存在时&#xff09;计算公式 平行光下的漫反射 根据光线和法线方向计算入射角θ&#xff08;以便…

数据结构--哈希表,哈希函数(或者散列表、散列函数)

目录 哈希表的定义 处理冲突的方法--拉链法 散列查找 常见的散列函数&#xff08;构造哈希函数&#xff09; 除留余数法 直接定址法 数字分析法 平方取中法 处理冲突的方法--开放定址法 &#xff08;1&#xff09;线性探测法&#xff1a; &#xff08;2&#xff09…

笔记:Android 应用启动流程

1.点击图标&#xff0c;启动app 点击图标&#xff0c;实际是封装了一个 Intent 然后调用了 startActivity 方法 ComponentName componentName new ComponentName("包名", "activity 名称"); Intent intent new Intent(Intent.ACTION_MAIN); intent.set…

【问题处理】GIT合并解决冲突后,导致其他人代码遗失的排查

GIT合并解决冲突后&#xff0c;导致其他人代码遗失的排查 项目场景问题描述分析与处理&#xff1a;1. 警告分析2. 文件分析3. 问题关键4. 验证 解决策略总结 &#x1f4d5;作者简介&#xff1a;战斧&#xff0c;从事金融IT行业&#xff0c;有着多年一线开发、架构经验&#xff…

【Nacos】Nacos服务注册服务端源码分析(一)

上篇简单看了下Nacos客户端在服务注册时做了什么。 本篇开始分析Nacos在服务注册时&#xff0c;服务端的相关逻辑。 建议先阅读这篇文章&#xff1a;支持 gRPC 长链接&#xff0c;深度解读 Nacos 2.0 架构设计及新模型 回顾一下&#xff0c;上篇我们看了Nacos在服务注册时&a…

四种常用的自动化测试框架

一直想仔细研究框架&#xff0c;写个流水账似的测试程序不难&#xff0c;写个低维护成本的测试框架就很难了&#xff0c;所以研究多种测试框架还是很有必要的&#xff0c;知道孰优孰劣&#xff0c;才能在开始编写框架的时候打好基础&#xff0c;今天读到了KiKi Zhao的翻译文章&…

reverse_iterator 逆序迭代器

在上一篇 C迭代器 iterator&#xff08;与逆序迭代器&#xff09; 中&#xff0c;我们看到了迭代器的基本用法。 现在我们看看一个奇怪的现象 意料之外的减法运算 无符号数的 0 减 1 变成了什么&#xff1f; &#xff1f;已知 size_t 一般为 unsigned long long 类型。 #…

区块链(4):区块链去中心化

1 区块链白皮书中的公有链&#xff0c;私有链&#xff0c;联盟链概念介绍 区块链系统根据应用场景和设计体系的不同&#xff0c;一般分为公有链、联盟 链和专有链(私有链)。其中: 公有链的各个节点可以自由加入和退出网络&#xff0c;并参加链上数据的读 写&#xff0c;运行时…

SpringBoot+MyBatis flex实现简单增删改查

一&#xff1a;创建SpringBoot项目 SpringBoot版本选择2.7.15 勾选相关的选项&#xff0c;并点击Create 项目创建完成 二.pom文件添加相关的依赖 <dependencies><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starte…

排序——直接插入排序折半插入排序

文章目录 前言一、排序的基本概念1. 排序的定义2. 排序的分类1) 稳定排序2) 不稳定排序 二、插入排序1. 直接插入排序1&#xff09;直接插入排序算法分析 2. 直接插入排序代码3. 直接插入排序时间复杂度4. 折半插入排序5. 折半插入排序代码 总结 前言 排序的基本概念数据结构稳…

从数字化到智能化再到智慧化,智慧公厕让城市基础配套更“聪明”

随着科技的迅猛发展&#xff0c;城市生活方式与配置设施的方方面&#xff0c;面也在不断的改变和升级。智慧公厕作为城市基础配套设施的一部分&#xff0c;从数字化到智能化再到智慧化&#xff0c;正逐渐展现出其独特的魅力和优势。实现了公共厕所建设、使用与管理方式的全面变…

【AI】机器学习——支持向量机(非线性及分析)

5. 支持向量机(线性SVM) 文章目录 5.4 非线性可分SVM5.4.1 非线性可分问题处理思路核技巧核函数特点 核函数作用于SVM 5.4.2 正定核函数由 K ( x , z ) K(x,z) K(x,z) 构造 H \mathcal{H} H 空间步骤 常用核函数 5.5 SVM参数求解算法5.6 SVM与线性模型关系 5.4 非线性可分SVM …

奇偶数之和

任务描述 本关任务&#xff1a;请编一个函数fun(int *a,int n,int *odd,int *even)&#xff0c;函数的功能是分别求出数组a中所有奇数之和以及所有偶数之和。形参n给出数组中数据的个数&#xff1b;利用指针odd返回奇数之和&#xff0c;利用指针even返回偶数之和。 例如&#…

UE5_OpenCV库的加载方式

UE5使用opencv库要在系统中添加opencv的环境变量 在项目文件夹下新建ThirdParty,将OpenCV中的bin、opencv文件夹copy到ThirdParty中 打开项目,找到source目录下的build.cs文件 修改build.cs内容,添加头文件路径,dll路径,lib路径 // Copyright Epic Games, Inc. All Right…

leetcode21

题目&#xff1a; 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输…