网站建设技术 论坛,营销型网站建设公司平台,crm管理系统怎么用,注册网站商城需要什么条件介绍
列表 是 Python 中的一种数据结构#xff0c;是一个可变、有序的元素序列。列表中的每个元素或值被称为一个项。就像字符串是在引号之间定义的字符一样#xff0c;列表是通过在方括号 [ ] 之间放置值来定义的。
列表非常适合在需要处理许多相关值时使用。它们使您能够…介绍
列表 是 Python 中的一种数据结构是一个可变、有序的元素序列。列表中的每个元素或值被称为一个项。就像字符串是在引号之间定义的字符一样列表是通过在方括号 [ ] 之间放置值来定义的。
列表非常适合在需要处理许多相关值时使用。它们使您能够将属于一起的数据保存在一起简化代码并对多个值同时执行相同的方法和操作。
在考虑 Python 列表和其他集合类型的数据结构时考虑一下计算机上的所有不同集合文件的集合歌曲播放列表浏览器书签电子邮件可以在流媒体服务上访问的视频集合等等。
字符串列表
首先让我们创建一个包含字符串数据类型项的列表
sea_creatures [shark, cuttlefish, squid, mantis shrimp, anemone]当我们打印出列表时输出与我们创建的列表完全相同
print(sea_creatures)[shark, cuttlefish, squid, mantis shrimp, anemone]作为一个有序的元素序列列表中的每个项都可以通过索引单独调用。列表是一种由较小部分组成的复合数据类型非常灵活因为可以添加、删除和更改其值。当您需要存储大量值或迭代值并且希望能够方便地修改这些值时您可能希望使用列表数据类型。
在本教程中我们将介绍一些在 Python 中使用列表的方法。
列表索引
列表中的每个项对应一个索引号这是一个整数值从索引号 0 开始。
对于列表 sea_creatures索引的拆分如下
‘shark’‘cuttlefish’‘squid’‘mantis shrimp’‘anemone’01234
第一个项字符串 shark 从索引 0 开始列表以项 anemone 的索引 4 结束。
由于 Python 列表中的每个项都有一个相应的索引号我们能够以与其他顺序数据类型相同的方式访问和操作列表。
现在我们可以通过引用其索引号来调用列表的离散项
print(sea_creatures[1])cuttlefish此列表的索引号范围为 0-4如上表所示。因此要单独调用任何项我们将使用以下索引号引用
sea_creatures[0] shark
sea_creatures[1] cuttlefish
sea_creatures[2] squid
sea_creatures[3] mantis shrimp
sea_creatures[4] anemone如果我们使用大于 4 的任何索引号调用列表 sea_creatures它将超出范围因为它将无效
print(sea_creatures[18])IndexError: list index out of range除了正索引号我们还可以使用负索引号访问列表中的项目从列表的末尾开始向后计数从 -1 开始。如果我们有一个很长的列表并且希望精确指定列表末尾的项目这将特别有用。
对于同一个列表 sea_creatures负索引的拆分如下
‘shark’‘cuttlefish’‘squid’‘mantis shrimp’‘anemone’-5-4-3-2-1
因此如果我们想要通过使用其负索引号打印项目 squid我们可以这样做
print(sea_creatures[-3])squid我们可以使用 运算符将列表中的字符串项与其他字符串连接起来
print(Sammy is a sea_creatures[0])Sammy is a shark我们能够将索引号与列表中的项关联起来以离散方式访问列表的每个项。
修改列表项
我们可以使用索引将列表中的项更改为不同的值。这使我们能够更好地控制列表因为我们能够修改和更新它们包含的项。
如果我们想要将索引为 1 的项目的字符串值从 cuttlefish 更改为 octopus我们可以这样做
sea_creatures[1] octopus现在当我们打印 sea_creatures 时列表将会有所不同
print(sea_creatures)[shark, octopus, squid, mantis shrimp, anemone]我们也可以使用负索引号更改项目的值
sea_creatures[-3] blobfish
print(sea_creatures)[shark, octopus, blobfish, mantis shrimp, anemone]现在blobfish 已经替换了负索引号为 -3对应正索引号 2的 squid。
能够修改列表中的项使我们能够以高效的方式更改和更新列表。
切片列表
我们还可以调用列表中的一些项。假设我们只想打印出 sea_creatures 的中间项我们可以通过创建一个切片来实现。使用切片我们可以通过创建由冒号 [x:y] 分隔的索引号范围来调用多个值
print(sea_creatures[1:4])[octopus, blobfish, mantis shrimp]在创建切片时例如 [1:4]第一个索引号是切片开始的地方包括第二个索引号是切片结束的地方不包括这就是为什么在我们上面的例子中位置 1、2 和 3 的项会被打印出来。
如果我们想要包含列表 sea_creatures 的开头的任一端我们可以省略 list[x:y] 语法中的一个数字。例如如果我们想要打印出列表 sea_creatures 的前三个项 —— shark、octopus、blobfish —— 我们可以这样做
print(sea_creatures[:3])[shark, octopus, blobfish]这打印了列表的开头停在索引 3 之前。
要包含列表末尾的所有项我们将反转语法
print(sea_creatures[2:])[blobfish, mantis shrimp, anemone]我们还可以在切片列表时使用负索引号类似于正索引号
print(sea_creatures[-4:-2])
print(sea_creatures[-3:])[octopus, blobfish]
[blobfish, mantis shrimp, anemone]我们还可以在切片中使用名为步幅的参数它指的是在从列表检索第一个项目之后移动多少项目。到目前为止我们已经省略了步幅参数并且 Python 默认为步幅 1因此从两个索引号之间检索的每个项目。
构造的语法是 list[x:y:z]其中 z 是步幅。让我们创建一个更大的列表然后切片它并给步幅赋值 2
numbers [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]print(numbers[1:11:2])[1, 3, 5, 7, 9]我们的构造 numbers[1:11:2] 打印了包括 1 和不包括 11 的索引号之间的值然后步幅值为 2告诉程序只打印每隔一个项目。
我们可以省略前两个参数仅使用步幅作为参数其语法为 list[::z]
print(numbers[::3])[0, 3, 6, 9, 12]通过将步幅设置为 3只打印每三个项目。
使用正索引号和负索引号切片列表并指定步幅使我们能够控制列表并获得我们想要的输出。
使用运算符修改列表
运算符可以用于修改列表。我们将介绍使用 和 * 运算符及其复合形式 和 *。 运算符可用于连接两个或多个列表
sea_creatures [shark, octopus, blobfish, mantis shrimp, anemone]
oceans [Pacific, Atlantic, Indian, Southern, Arctic]print(sea_creatures oceans)[shark, octopus, blobfish, mantis shrimp, anemone, Pacific, Atlantic, Indian, Southern, Arctic]由于 运算符可以连接因此它可用于将一个列表的项或多个项添加到另一个列表的末尾。记得将项放在方括号中
sea_creatures sea_creatures [yeti crab]
print(sea_creatures)[shark, octopus, blobfish, mantis shrimp, anemone, yeti crab]* 运算符可用于复制列表。也许您需要将目录中的所有文件的副本复制到服务器上或者与朋友共享播放列表 —— 在这些情况下您需要复制数据的集合。
让我们将 sea_creatures 列表乘以 2将 oceans 列表乘以 3
print(sea_creatures * 2)
print(oceans * 3)[shark, octopus, blobfish, mantis shrimp, anemone, yeti crab, shark, octopus, blobfish, mantis shrimp, anemone, yeti crab]
[Pacific, Atlantic, Indian, Southern, Arctic, Pacific, Atlantic, Indian, Southern, Arctic, Pacific, Atlantic, Indian, Southern, Arctic]通过使用 * 运算符我们可以按照指定的次数复制我们的列表。
我们还可以使用 和 * 运算符的复合形式与赋值运算符 结合使用。 和 * 复合运算符可用于以快速和自动化的方式填充列表。您可以使用这些运算符使用占位符填充列表稍后可以使用用户提供的输入修改这些占位符例如。
让我们向列表 sea_creatures 添加一个以列表形式的项目。此项将作为占位符并且我们想要多次添加此占位符项目。为此我们将使用 运算符与 for 循环
for x in range(1, 4):sea_creatures [fish]print(sea_creatures)[shark, octopus, blobfish, mantis shrimp, anemone, yeti crab, fish]
[shark, octopus, blobfish, mantis shrimp, anemone, yeti crab, fish, fish]
[shark, octopus, blobfish, mantis shrimp, anemone, yeti crab, fish, fish, fish]对于循环的每次迭代都会向原始列表 sea_creatures 添加额外的列表项 fish。
* 运算符的行为类似
sharks [shark]for x in range(1, 4):sharks * 2print(sharks)[shark, shark]
[shark, shark, shark, shark]
[shark, shark, shark, shark, shark, shark, shark, shark]和 * 运算符可用于连接列表和复制列表。复合运算符 和 * 可以连接列表和复制列表并将新的标识传递给原始列表。
从列表中删除项目
可以使用 del 语句从列表中删除项目。这将删除您在列表中指定索引号处的值。
从 sea_creatures 列表中删除项 octopus。此项位于索引位置 1。为了删除该项我们将使用 del 语句然后调用列表变量和该项的索引号
sea_creatures [shark, octopus, blobfish, mantis shrimp, anemone, yeti crab]del sea_creatures[1]
print(sea_creatures)[shark, blobfish, mantis shrimp, anemone, yeti crab]现在索引位置 1 处的字符串 octopus 不再在我们的列表 sea_creatures 中。
我们还可以指定范围使用 del 语句。比方说我们想要删除不仅 octopus 这一项还有 blobfish 和 mantis shrimp。我们可以使用 del 语句在 sea_creatures 中调用一个范围来实现
sea_creatures [shark, octopus, blobfish, mantis shrimp, anemone, yeti crab]del sea_creatures[1:4]
print(sea_creatures)[shark, anemone, yeti crab]通过在 del 语句中使用范围我们能够删除索引号为 1包括到索引号为 4不包括之间的项留下包含 3 个项的列表。
del 语句允许我们从列表数据类型中删除特定的项。
用列表项构造列表
列表可以用由列表组成的项定义其中每个括号内的列表都包含在父列表的较大括号中
sea_names [[shark, octopus, squid, mantis shrimp], [Sammy, Jesse, Drew, Jamie]]这些列表内的列表称为嵌套列表。
要访问此列表中的项我们将不得不使用多个索引号
print(sea_names[1][0])
print(sea_names[0][0])Sammy
shark第一个列表因为它等同于一个项其索引号为 0这将是构造中的第一个数字而第二个列表将索引号为 1。在每个内部嵌套列表中将有单独的索引号我们将在第二个索引号中调用它
sea_names[0][0] shark
sea_names[0][1] octopus
sea_names[0][2] squid
sea_names[0][3] mantis shrimpsea_names[1][0] Sammy
sea_names[1][1] Jesse
sea_names[1][2] Drew
sea_names[1][3] Jamie在处理列表的列表时重要的是要牢记为了访问相关嵌套列表中的特定项您将需要引用多个索引号。
结论
列表数据类型是一种灵活的数据类型可以在程序执行过程中进行修改。本教程介绍了列表的基本特性包括索引、切片、修改和连接列表。从这里您可以通过阅读 “如何使用列表方法” 了解更多有关在 Python 中使用列表的信息并学习有关使用现有列表创建列表的 列表推导式。