在 Python 中如何向列表或数组添加元素

在这篇文章中,你将了解 Python 中的 .append() 方法。你还会看到 .append() 与其他用于向列表添加元素的方法有什么不同。

让我们开始吧!在这里插入图片描述

Python 中的列表是什么?给初学者的定义

编程中的数组是一个有序的项目集合,所有的项目都需要是相同的数据类型。

然而,与其它编程语言不同,数组在 Python 中不是一个内置的数据结构。Python 使用列表取代传统的数组。

列表本质上是动态数组,是 Python 中最常见的和最强大的数据结构之一。

你可以把它们想象成有序的容器。它们将同类相关的数据存储和组织在一起。

存储在一个列表中的元素可以是任何数据类型。

可以有整数列表、浮点数列表、字符串列表,以及任何其它内置 Python 数据类型的列表。

尽管列表有可能只容纳相同数据类型的项目,但它们比传统的数组更灵活。这意味着在同一个列表中可以有各种不同的数据类型。

列表有 0 个或更多的项目,这意味着也可以有空的列表。在一个列表中,也可以有重复的值。

值之间用逗号隔开,用方括号 [] 把值括起来。

如何在 Python 中创建列表

要创建一个新的列表,首先给这个列表起一个名字。然后添加赋值运算符(=)和一对有开头和结尾的方括号。在方括号内添加你希望列表包含的值。

#创建一个包含名字的新列表
names = ["Jimmy", "Timmy", "Kenny", "Lenny"]#将列表打印到控制台
print(names)#输出
#['Jimmy', 'Timmy', 'Kenny', 'Lenny']

在 Python 中列表是如何被索引的

列表为每个项目保持一个顺序。

集合中的每个项目都有一个自己的索引号,你可以用它来访问这个项目本身。

Python(以及其它现代编程语言)中的索引从 0 开始,列表中的每一项的索引逐个增加。

例如,前面创建的列表有 4 个值:

names = ["Jimmy", "Timmy", "Kenny", "Lenny"]

列表中的第一个值,“Jimmy”,索引为 0。

列表中的第二个值,“Timmy”,索引为 1。

列表中的第三个值,“Kenny”,索引为 2。

列表中的第四个值,“Lenny”,索引为 3。

要通过索引号访问列表中的一个元素,首先要写出列表的名称,然后在方括号中写出该元素索引,这是一个整数。

例如,如果你想访问索引为 2 的元素,你应该这样做:

names = ["Jimmy", "Timmy", "Kenny", "Lenny"]print(names[2])#output
#Kenny

Python 中的列表是可变的

在 Python 中,当对象是可变的时候,这意味着一旦它们被创建,其值就可以被改变。

列表是可变的对象,所以在它们被创建后,你可以更新和改变它们。

列表也是动态的,意味着它们可以在程序的整个生命周期中增长和缩小。

可以从现有的列表中删除项目,也可以给现有的列表添加新的项目。

有一些内置的方法用于从列表中添加和删除项目。

例如,要添加项目,有 .append()、.insert() 和 .extend() 方法。

要删除项目,有 .remove()、.pop() 和 .pop(index) 方法。

.append() 方法的作用

.append() 方法在一个已经存在的列表的末尾添加一个额外的元素。

语法看起来像这样:

list_name.append(item)

让我们把它分解一下:

  • list_name 是你给列表起的名字。
  • .append() 是列表方法,用于在 list_name 的末尾添加一个项目。
  • item 是你要添加的指定的单独项目。

使用 .append() 时,原始列表被修改,不创建新的列表。

如果你想在先前创建的列表中添加一个额外的名字,你可以这样做:

names = ["Jimmy", "Timmy", "Kenny", "Lenny"]#在列表的末尾添加名字 Dylan
names.append("Dylan")print(names)#output
#['Jimmy', 'Timmy', 'Kenny', 'Lenny', 'Dylan']

.append() 和 .insert() 方法之间有什么区别

这两个方法的区别是:.append() 在列表的末尾添加一个项目,而 .insert() 在列表的指定位置插入一个项目。

正如你在上一节看到的,.append() 将把你作为参数传递给函数的项目始终添加到列表的末尾。

如果你不想只是将项目添加到列表的末尾,你可以用 .insert() 指定你想添加的位置。

一般的语法是这样的:

list_name.insert(position,item)

让我们把它分解一下:

  • list_name 是列表的名称。
  • .insert() 是列表方法,用于在列表中插入一个项目。
  • position 是该方法的第一个参数。它总是一个整数——具体地说,它是你希望新项目被放置的位置的索引号。
  • item 是该方法的第二个参数。在这里你指定你想添加到列表中的新项目。

例如,假设你有以下的编程语言列表:

programming_languages = ["JavaScript", "Java", "C++"]print(programming_languages)#output
#['JavaScript', 'Java', 'C++']

如果你想在列表的开始插入 “Python”,作为列表的一个新项,你可以使用 .insert() 方法,并指定位置为 0(记住,列表的第一个值的索引总是 0)。

programming_languages = ["JavaScript", "Java", "C++"]programming_languages.insert(0, "Python")print(programming_languages)#output
#['Python', 'JavaScript', 'Java', 'C++']

如果你想让 “JavaScript” 成为列表中的第一个项目,然后添加 “Python” 作为新的项目,你会指定位置为 1:

programming_languages = ["JavaScript", "Java", "C++"]programming_languages.insert(1,"Python")print(programming_languages)#output
#['JavaScript', 'Python', 'Java', 'C++']

与 .append() 方法相比,.insert() 方法给了你更多的灵活性,前者只在列表的末尾添加一个新项目。

.append() 和 .extend() 方法之间有什么区别

如果你想一次向列表中添加多个项目,而不是一次添加一个,怎么办?

你可以使用 .append() 方法在一个列表的末尾添加多个项目。

假设你有一个只包含两种编程语言的列表:

programming_languages = ["JavaScript", "Java"]print(programming_languages)#output
#['JavaScript', 'Java']

然后你想在它的最后再增加两种语言。

在这种情况下,你传递一个包含你想添加的两个新值的列表,作为 .append() 的一个参数:

programming_languages = ["JavaScript", "Java"]#在列表的末尾添加两个新项目
programming_languages.append(["Python","C++"])print(programming_languages)#output
#['JavaScript', 'Java', ['Python', 'C++']]

如果你仔细看看上面的输出,[‘JavaScript’, ‘Java’, [‘Python’, ‘C++’]],你会发现一个新的列表被添加到已经存在的列表的末尾。

所以,.append() 在一个列表中添加了一个列表。

列表是对象,当你使用 .append() 将另一个列表添加到一个列表中时,新的项目将作为一个单独的对象(项目)被添加。

假设你已经有两个列表,像这样:

names = ["Jimmy", "Timmy"]
more_names = ["Kenny", "Lenny"]

如果想把两个列表的内容合二为一,把 more_names 的内容加入到 names 中,会怎么样?

当 .append() 方法被用于此目的时,另一个列表会在 names 中被创建:

names = [“Jimmy”, “Timmy”]

names = ["Jimmy", "Timmy"]
more_names = ["Kenny", "Lenny"]#将 more_names 的内容添加到 names
names.append(more_names)print(names)#output
#['Jimmy', 'Timmy', ['Kenny', 'Lenny']]

所以,.append() 通过将对象追加到最后,将新的元素作为另一个列表添加。

要真正将列表连接(添加)在一起,并将一个列表中的所有项目合并到另一个列表,你需要使用 .extend() 方法。

一般的语法是这样的:

list_name.extend(iterable/other_list_name)

让我们把它分解一下:

  • list_name 是其中一个列表的名称。
  • .extend() 是将一个列表的所有内容添加到另一个列表的方法。
  • iterable 可以是任何可迭代的东西,比如另一个列表,例如
    another_list_name。在这种情况下,another_list_name 是一个列表,它将与 list_name
    连接,其内容将作为单独的项目被逐一添加到 list_name 的末尾。

因此,拿前面的例子来说,当 .append() 被替换为 .extend() 时,输出结果将是这样的:

names = ["Jimmy", "Timmy"]
more_names = ["Kenny", "Lenny"]names.extend(more_names)print(names)#output
#['Jimmy', 'Timmy', 'Kenny', 'Lenny']

当我们使用 .extend() 时,名字列表得到扩展,其长度增加了 2。

.extend() 的工作方式是,它将一个列表(或其他可迭代的)作为参数,对每个元素进行迭代,然后将可迭代的每个元素添加到列表中。

.append() 和 .extend() 之间还有一个区别。

当你想添加一个字符串时,如前面所见,.append() 将整个单一项目添加到列表的末尾:

names = ["Jimmy", "Timmy", "Kenny", "Lenny"]#将名字 Dylan 添加到列表的末尾
names.append("Dylan")print(names)#output
#['Jimmy', 'Timmy', 'Kenny', 'Lenny', 'Dylan']

如果你用 .extend() 将一个字符串添加到一个列表的末尾,那么字符串中的每个字符都会作为一个单独的项目被添加到列表中。

这是因为字符串是可迭代的,而 .extend() 是对传递给它的可迭代参数进行迭代。

因此,上面的例子看起来将是像这样的:

names = ["Jimmy", "Timmy", "Kenny", "Lenny"]#给 .extend() 传递一个字符串(可迭代的)
names.extend("Dylan")print(names)#output
#['Jimmy', 'Timmy', 'Kenny', 'Lenny', 'D', 'y', 'l', 'a', 'n']

我的职业生涯开始和大多数码农一样,刚开始接触都是最基础的软件测试、编程语法。那时候在B站CSDN到处找学习资源,在这个吃技术的IT行业来说

,不断学习是至关重要的。但是我之前做的是最基础的业务工作,随着时间的消磨,让我产生了对自我价值和岗位意义的困惑。

福利

我的程序员之路,一路走来都离不开每个阶段的计划,因为自己喜欢规划和总结,所以,我和朋友特意花了一段时间整理编写了下面的《python架构师

学习路线》,也整理了不少【网盘资源】,需要的朋友可以公众号【Python大本营】获取网盘链接。

希望会给你带来帮助和方向。

总结

总而言之,.append() 方法用于在现有列表的末尾添加一个项目,而不创建一个新的列表。

当它用于将一个列表添加到另一个列表时,它在一个列表中创建一个列表。

如果你想学习更多关于 Python 的知识,请查看 freeCodeCamp 的 Python 认证。该课程对初学者友好。你将学习交互式课程,并通过创建五个项目来实践你所学习的知识。

感谢你阅读这篇文章。happy coding!

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

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

相关文章

【Linux-常用命令-基础命令-解压rar文件-unrar-x-命令-笔记】

【Linux-常用命令-基础命令-解压rar文件-unrar-x-命令-笔记】 1、前言2、操作3、自己的操作 1、前言 最近,在使用Linux的时,使用相关基础命令是,总是容易忘记,上网一搜,大部分都写的比较繁琐,解压不同文件…

XCode15与iOS17/17.1 真机测试问题处理

XCode15与iOS17/17.1 真机测试问题处理,网上相关博客很多,摘录了如下实践后能起作用的地址如下:Xcode 15 报错处理 - 简书iOS17版本适配-CSDN博客 Xcode15适配-六虎 主要介绍下:Assertion failure in void _UIGraphicsBeginImag…

Linux编译内核添加Bcache模块

由于Bcache是在linux kernel 3.10之后才加入的,所以要使用Bcache,首先必须确保内核版本至少是3.10或及以上,可以使用uname -a查看内核版本 [rootceph01 ~]# uname -a Linux ceph01 4.18.0-305.3.1.el8.x86_64 #1 SMP Tue Jun 1 16:14:33 UTC…

在Linux中,怎么查看自己电脑的系统架构是什么?

2023年10月18日,周三晚上 这些命令会返回一个字符串,表示系统的架构。 常见的架构包括 x86(32位)、x86_64(64位)、ARM 等。 方法1:使用uname命令 uname -m方法2:使用arch命令 ar…

如何查看前端项目vue版本

(1)点击package.json文件 (2)找到dependencies下面的value (2)查看vue版本 2开头为vue2 3开头为vue3

从零开始了解协同OA办公系统,一篇文章就够了!

随着现代企业管理的不断发展,越来越多的企业开始关注协同OA办公系统,以提高工作效率和降低成本。但是,很多企业对协同OA办公系统并不了解,甚至不知道该如何开始使用。本文将从零开始,为大家详细介绍协同OA办公系统。 一…

【数据结构】排序算法的稳定性分析

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

Java使用javah命令:‘javah‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

前提是已安装jdk&#xff0c;配置JDK环境变量&#xff0c;并成功输出下图&#xff1a; 但在命令行窗口使用javah&#xff0c;找不到该命令&#xff1a; 原因&#xff1a;新版的Java不使用javah的命令了&#xff0c;而是使用javac -h 用法&#xff1a; javac -h <directory&…

软件测试全套教程,软件测试自学线路图

目录 一、简介 二、引言 为什么要做接口自动化测试&#xff1f; 为什么要自己写框架呢&#xff1f; 三、环境准备 四、测试接口准备 接口代码 接口信息 五、编写接口测试 测试思路 脚本实现 六、优化 封装接口调用 保持cookies&增加log信息 封装重复操作 七…

微信隐秘功能:如何巧妙隐藏好友和消息的方法教程

在日常使用微信的过程中&#xff0c;难免会有些私密内容或特定的联系人和群聊希望能够暂时隐藏起来&#xff0c;以保护个人隐私。幸运的是&#xff0c;微信提供了一些内置功能以及额外的工具&#xff0c;能够帮助我们实现这一目的。下面就来详细介绍一种简单易行的方法&#xf…

软件考试学习笔记(希赛)

软考学习笔记-软件设计师 1. 软考基本介绍1.1 软考分数制1.2软考考试分类介绍1.3软件考试报名网站1.4考试内容1.4.1上午考试内容-综合知识1.4.2下午考试内容-软件设计 2.数据的表示2.1进制转换2.1.1R进制------》十进制转换2.1.2十进制-----》R进制转换2.1.3二进制与八进制与16…

低代码如何赋能实体经济走向数实融合

数字工厂、智慧园区、智慧社区、数字乡村、智慧校园、数字化管理平台……当前&#xff0c;各行各业正在全面拥抱数字化。“数实融合”的浪潮持续高涨&#xff0c;企业数字化转型的呼声也不断走高。然而&#xff0c;当前实体经济和数字经济融合不全&#xff0c;数字技术未能深度…

SpringBoot+自定义注解+AOP高级玩法打造通用开关

1.项目结构 2.引入依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot<…

MySQL 查询 唯一约束 对应的字段,列名称合并

MySQL 查询 唯一约束 对应的字段&#xff0c;列名称合并 SELECT F.DbName,F.TableName,F.ConstraintName,GROUP_CONCAT(ColumnName) ColumnName FROM ( SELECT t1.TABLE_SCHEMA DbName, t1.TABLE_NAME TableName,t1.CONSTRAINT_NAME ConstraintName,t2.COLUMN_NAME ColumnNam…

UI自动化测试的痛点

当我们找工作的时候查看招聘信息发现都需要有自动化测试经验&#xff0c;由此看来测试人员不会一点自动化测试技术都不好意思说自己是做软件测试的。大部分测试人员也都是从使用自动化测试工具、录制回放、测试脚本、开发小工具入门自动化测试的&#xff0c;然后在慢慢的接触 U…

Rust-类型转换进阶

这篇文章收录于Rust 实战专栏。这个专栏中的相关代码来自于我开发的笔记系统。它启动于是2023年的9月14日。相关技术栈目前包括&#xff1a;Rust&#xff0c;Javascript。关注我&#xff0c;我会通过这个项目的开发给大家带来相关实战技术的分享。 关于Rust的类型转换&#xff…

美国绿氢项目开发商NovoHydrogen完成2000万美元融资

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于美国科罗拉多州戈尔登的绿氢项目开发商NovoHydrogen今日宣布已完成2000万美元融资。 本轮融资由现代能源公司领投。 该公司打算利用这笔资金进一步扩大其团队&#xff0c;并将其绿氢项目的…

纳米软件科普:开关电源测试方案之如何测试短路保护

开关电源短路保护测试是通过模拟短路状态来检测电源在短路时是否有保护能力&#xff0c;是开关电源一个重要测试项目。通过测试&#xff0c;不仅可以测试开关电源的保护能力&#xff0c;还可以保护电路系统以及对设备的保护&#xff0c;防止受到损坏。那么短路保护要如何测试呢…

Linux创建与删除用户

Linux创建与删除用户 新增用户&#xff1a; adduser 用户名【添加用户】 passwd 用户名【设置用户密码】删除用户&#xff1a; userdel -r 用户名【删除用户】

205、使用消息队列实现 RPC(远程过程调用)模型的 服务器端 和 客户端

目录 ★ RPC模型&#xff08;远程过程调用通信模型&#xff09;▲ 完整过程&#xff1a;代码演示总体流程解释&#xff1a;ConstantUtil 常量工具类ConnectionUtil RabbitMQ连接工具类Server 服务端Client 客户端测试结果服务端客户端 完整代码ConstantUtil 常量工具类Connecti…