添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
原文: Append in Python – How to Append to a List or an Array

在这篇文章中,你将了解 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"]
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']

总结

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

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

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

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

freeCodeCamp 是捐助者支持的 501(c)(3) 条款下具有免税资格的慈善组织(税号:82-0779546)。

我们的使命:帮助人们免费学习编程。我们通过创建成千上万的视频、文章和交互式编程课程——所有内容向公众免费开放——来实现这一目标。

所有给 freeCodeCamp 的捐款都将用于我们的教育项目,购买服务器和其他服务,以及聘用员工。

你可以 点击此处免税捐款 about:blank 是什么意思 打开 .dat 文件 Node 最新版本 反恶意软件服务 Windows10 产品密钥 Git 切换分支 AppData 文件夹 Windows 10 屏幕亮度 JSON 注释 MongoDB Atlas 教程 Python 字符串转数字 Git 命令 更新 NPM 依赖 谷歌恐龙游戏 CSS 使用 SVG 图片 Python 获取时间 Git Clone 指定分支 JS 字符串反转 React 个人作品网站 媒体查询范围 forEach 遍历数组 撤销 Git Add OSI 七层网络 Event Loop 执行顺序 CMD 删除文件 Git 删除分支 HTML 表格代码 Nano 怎么保存退出 HTML5 模板