Python 3 list 常用方法

本文详细介绍了Python3中如何使用内置方法对列表进行操作,如添加元素(append,insert)、合并列表(extend)、删除元素(remove,pop)、查找索引(index)、复制列表(copy)、反转列表(reverse)、计数和排序(count,sort)。
摘要由CSDN通过智能技术生成

简介

Python 3 中有许多内置的数据结构,其中包括列表。数据结构为我们提供了一种组织和存储数据的方式,我们可以使用内置方法来检索或操作这些数据。

要充分利用本教程,您应该对列表数据类型以及它的语法和索引有一定的了解。您可以通过阅读教程《理解 Python 3 中的列表》来复习列表内容。

在这里,我们将介绍您可以用于处理列表的内置方法。我们将向列表添加项目并从列表中删除项目,扩展列表,反转和排序列表等等。

重要的是要记住,列表是可变的数据类型。与不可变的字符串不同,每当您在列表上使用方法时,您会影响列表本身而不是列表的副本。

在本教程中,我们将主要使用一个由各种需要修改的鱼组成的清单,因为鱼被添加到或从市政水族馆中移除。

先决条件

您应该已经安装了 Python 3,并在计算机或服务器上设置了编程环境。如果您还没有设置编程环境,可以参考本地编程环境的安装和设置指南,或者适合您操作系统(Ubuntu、CentOS、Debian 等)的服务器编程环境的指南。

list.append()

list.append(x) 方法将项目(x)添加到列表的末尾。我们将以分散在整个水族馆中的鱼的列表开始。

fish = ['barracuda','cod','devil ray','eel']

这个列表包含 4 个字符串项目,它们的索引编号从 0 的 'barracuda' 到索引 3 的 'eel'

我们今天在水族馆里得到了一种新鱼,我们想把这种鱼添加到我们的清单中。我们将新鱼类型的字符串 'flounder' 传递给 list.append() 方法,然后打印出我们修改后的列表,以确认项目已添加。

fish.append('flounder')
print(fish)
['barracuda', 'cod', 'devil ray', 'eel', 'flounder']

现在,我们有一个包含 5 个字符串项目的列表,最后一项是我们传递给 .append() 函数的项目。

list.insert()

list.insert(i,x) 方法接受两个参数,i 是您想要添加项目的索引位置,x 是项目本身。

我们的水族馆获得了另一种新鱼,一种凤尾鱼。到目前为止,您可能已经注意到鱼列表 fish 是按字母顺序排列的。因此,我们不想只使用 list.append() 函数将字符串 'anchovy' 添加到 fish 的末尾。相反,我们将使用 list.insert() 在此列表中的索引位置 0 处添加 'anchovy' 到列表的开头:

fish.insert(0,'anchovy')
print(fish)
['anchovy', 'barracuda', 'cod', 'devil ray', 'eel', 'flounder']

在这种情况下,我们在列表的开头添加了字符串项目。随着它们的移动,每个连续的项目现在都将位于新的索引编号。因此,'barracuda' 将位于索引 1,'cod' 将位于索引 2,'flounder'——最后一个项目——将位于索引 5。

如果此时我们将一只雀鲷带到水族馆,并希望根据上面的列表保持字母顺序的话,我们将将项目放在索引 3 处:fish.insert(3,'damselfish')

list.extend()

如果我们想要合并多个列表,我们可以使用 list.extend(L) 方法,它接受第二个列表作为其参数。

我们的水族馆欢迎另一个关闭的水族馆中的四种新鱼。我们已经将这些鱼放在名为 more_fish 的列表中:

more_fish = ['goby','herring','ide','kissing gourami']

现在,我们将列表 more_fish 中的项目添加到列表 fish 并打印列表,确保第二个列表已合并:

fish.extend(more_fish)
print(fish)
['anchovy', 'barracuda', 'cod', 'devil ray', 'eel', 'flounder', 'goby', 'herring', 'ide', 'kissing gourami']

在这一点上,列表 fish 包含 10 个项目。

list.remove()

当我们需要从列表中删除一个项目时,我们将使用 list.remove(x) 方法,该方法将删除列表中第一个值等于 x 的项目。

一组当地的研究科学家前来参观水族馆。他们正在研究吻鬼鱼物种。他们要求我们借给他们我们的吻鬼鱼,因此我们想要从列表中删除 'kissing gourami' 来反映这一变化:

fish.remove('kissing gourami')
print(fish)
['anchovy', 'barracuda', 'cod', 'devil ray', 'eel', 'flounder', 'goby', 'herring', 'ide']

使用 list.remove() 方法后,我们的列表不再包含 'kissing gourami' 项目。

如果您在 list.remove() 中传递一个列表中不存在的项目 x,您将收到以下错误:

ValueError: list.remove(x): x not in list

请记住 list.remove() 只会删除您传递给它的第一个项目实例,因此如果我们在水族馆中有两只吻鬼鱼,我们仍然可以使用 fish.remove('kissing gourami') 来删除列表中的第二只吻鬼鱼。

list.pop()

我们可以使用 list.pop([i]) 方法返回列表中给定索引位置的项目,然后删除该项目。方括号中的 i 表示这个参数是可选的,因此如果我们不指定索引(例如 fish.pop()),将返回并删除最后一个项目。

我们的魔鬼鬼鲛已经长得太大了,幸运的是,城镇附近的几个城镇可以满足鬼鲛的需要。我们将使用 .pop() 并指定字符串项目 'devil ray' 的索引编号(3)来从我们的列表中删除该项目,并通过返回它来确认我们正在删除正确的项目。

print(fish.pop(3))
print(fish)
devil ray
['anchovy', 'barracuda', 'cod', 'eel', 'flounder', 'goby', 'herring', 'ide']

通过使用 .pop() 方法,我们能够从列表 fish 中返回并删除了 'devil ray'

如果我们向此方法传递不带参数并执行 fish.pop(),最后一个项目 'ide' 将被返回,然后从列表中删除。

list.index()

当列表开始变得很长时,我们很难计算出项目的索引位置。我们可以使用 list.index(x),其中 x 等于一个项目值,来返回列表中该项目的索引。如果具有值 x 的项目超过一个,此方法将返回第一个索引位置。

print(fish)
print(fish.index('herring'))
['anchovy', 'barracuda', 'cod', 'eel', 'flounder', 'goby', 'herring', 'ide']
6

虽然列表 fish 不是很长,我们仍然可以在不计数的情况下确定项目 'herring' 的索引位置。了解每个项目的索引很重要,以便我们能够有效地操作列表。

如果我们指定值并在给定列表中不存在这样的值时使用 .index(),我们将收到错误消息:ValueError: 'x' is not in list

list.copy()

当我们使用一个列表并希望在多种方式下对其进行操作,同时仍然可以使用原始列表,我们可以使用 list.copy() 来制作列表的副本。

我们将从 fish.copy() 返回的值传递给变量 fish_2,然后打印出 fish_2 的值,以确保它是一个与 fish 具有相同项目的列表。

fish_2 = fish.copy()
print(fish_2)
['anchovy', 'barracuda', 'cod', 'eel', 'flounder', 'goby', 'herring', 'ide']

此时,fishfish_2 都是等效的列表。

list.reverse()

我们可以使用 list.reverse() 方法来反转列表中项目的顺序。也许对于我们来说,使用逆字母顺序比传统的字母顺序更方便。在这种情况下,我们需要使用 .reverse() 方法来反转 fish 列表中的列表。

fish.reverse()
print(fish)
['ide', 'herring', 'goby', 'flounder', 'eel', 'cod', 'barracuda', 'anchovy']

使用 .reverse() 方法后,我们的列表以原来列表的最后一项 'ide' 开始,并以原来列表的第一项 'anchovy' 结束。

list.count()

list.count(x) 方法将返回指定列表中值为 x 的次数。当列表中有许多匹配值时,我们可能会使用此方法。例如,如果我们有一个更大的水族馆,并且对每条霓虹灯鱼都设置了一个项目,我们可以使用 .count() 来确定我们随时拥有的所有霓虹灯鱼的总数。

我们将使用当前的列表来计算项 'goby' 出现的次数:

print(fish.count('goby'))
1

因为字符串 'goby' 只出现一次,当我们使用 .count() 方法时,数字 1 被返回。

让我们也将这个方法与一个整数列表一起使用。我们的水族馆致力于为每一条鱼提供很好的护理,所以我们正在追踪我们每条鱼的年龄,以便我们可以确保他们的饮食满足根据年龄来判断鱼的需求。这个第二个列表 fish_ages 对应于我们的另一个列表 fish 中的鱼的类型。

因为 1 岁的鱼有特殊的饮食需求,我们将计算我们有多少条 1 岁的鱼:

fish_ages = [1,2,4,3,2,1,1,2]
print(fish_ages.count(1))
3

整数 1 在列表 fish_ages 中出现 3 次,所以当我们使用 .count() 方法时,数字 3 被返回。

list.sort()

我们可以使用 list.sort() 方法来对列表中的项目进行排序。

就像 list.count() 一样,list.sort() 可以更清楚地显示出某个整数值有多少个,也可以将一个未排序的数字列表排列成数字顺序。

让我们使用整数列表 fish_ages 来查看 .sort() 方法的效果:

fish_ages.sort()
print(fish_ages)
[1, 1, 1, 2, 2, 2, 3, 4]

通过使用 .sort()fish_ages,整数值按顺序返回。在实践中,由于这些年龄对应特定的鱼,通常会希望在排序之前复制原始列表。

list.clear()

当我们完成列表的使用时,我们可以使用 list.clear() 方法来移除列表中的所有值。

当地政府决定接管我们的水族馆,将其打造成城市人民享受的公共场所。由于我们不再自己管理水族馆,我们也不再需要保留鱼的清单,所以让我们清空 fish 列表:

fish.clear()
print(fish)
[]

在使用 fish.clear() 函数后,我们收到了方括号作为输出,让我们知道列表现在已经清空了所有项目。

总结

作为可变的有序元素序列,列表在 Python 中是非常灵活的数据结构。列表方法使我们能够以复杂的方式处理列表。我们可以将方法与其他方法结合使用以其他方式修改列表,以便在我们的程序中有效地使用列表。从这里,您可以阅读关于列表推导,以基于现有列表来创建列表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张无忌打怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值