Python获取列表中的最后一个元素

您所在的位置:网站首页 python列表修改元素值 Python获取列表中的最后一个元素

Python获取列表中的最后一个元素

2023-03-18 16:12| 来源: 网络整理| 查看: 265

在本教程中,我们将介绍在Python中查找列表中最后一个元素的一些常见方法。首先,我们将介绍最简单和最Pythonic的方法,然后展示一些其他的替代解决方案。

让我们来看一下我们将要使用的列表:

exampleList = [1, 2, "Three", ["Four", 5], 6]

注意: Python中的列表是一组不一定相同类型的元素。一个列表可以包含数字、字符串、嵌套列表等元素。

https://www.sangniao.com/

如何获取Python列表中的最后一个元素

在Python中,我们可以采用几种方法来获取列表的最后一个元素,其中一些比其他方法更直观和实用,有些方法实际上会改变原始列表。

获胜解决方案 - 使用负索引

Python支持访问列表元素的负索引的方法。这意味着我们可以使用[]运算符按相反的顺序访问元素。

众所周知,列表中的索引工作方式如下:

firstElement = exampleList[0] nthElement = exampleList[n-1] ...

第一个元素的索引为0,第二个元素的索引为1,第n个元素的索引为n-1。

负索引遵循相同的逻辑,但顺序相反。最后一个元素的索引为-1,倒数第二个元素的索引为-2,依此类推:

lastElement = exampleList[-1] print("最后一个元素: ", lastElement) print("exampleList: ", exampleList) secondToLast = exampleList[-2] print("倒数第二个元素: ", secondToLast)

输出:

最后一个元素: 6 exampleList: [1, 2, 'Three', ['Four', 5], 6] 倒数第二个元素: ['Four', 5]

负索引不会更改原始列表。它只是一种访问元素而不对原始列表进行任何更改的方法。

这是迄今为止最简单和最Pythonic的解决方案,也是大多数人喜欢的方法。

使用索引

简单的索引通常用于按原始顺序使用[]运算符访问列表中的元素。如上所述,第一个元素的索引为0,第二个元素的索引为1,依此类推。知道这一点,我们可以得出结论,最后一个元素的索引为len(exampleList)-1:

lastElement = exampleList[len(exampleList)-1] print("最后一个元素: ", lastElement) print("exampleList: ", exampleList) secondToLast = exampleList[len(exampleList)-2] print("倒数第二个元素: ", secondToLast)

输出:

最后一个元素: 6 exampleList: [1, 2, 'Three', ['Four', 5], 6] 倒数第二个元素: ['Four', 5]

与负索引一样,索引方法只用于访问列表的元素,而不对原始列表执行任何更改。

使用pop()方法

在Python中,pop()方法用于删除给定列表的最后一个元素并返回删除的项。

pop()方法可以可选地接受一个整数参数。它是我们想要删除的元素的索引,因此如果我们调用exampleList.pop(0),将删除并返回第一个元素。

如果参数是负数,将执行负索引的逻辑以确定要删除的元素。调用exampleList.pop(-1)将导致删除examleList的最后一个元素。

桑鸟sangniao.com

尽管默认情况下pop()方法已经弹出了最后一个元素,但根本没有必要使用索引:

lastElement = exampleList.pop() print("最后一个元素: ", lastElement) print("exampleList: ", exampleList)

输出:

最后一个元素: 6 exampleList: [1, 2, 'Three', ['Four', 5]]

请注意,pop()方法根据定义,确实会更改原始列表,通过弹出的元素来删除它。

使用切片

在Python中,切片符号用于获取列表的子列表。符号本身非常简单:

exampleList[startIndex:[endIndex[:indexStep]]]

这意味着我们可以从startIndex开始的索引中获取exampleList的子列表,一直到带有indexStep步长的endIndex。

endIndex和indexStep是可选的参数。如果我们保留endIndex空白,则其默认值为原始列表的末尾。indexStep的默认值为1。

如果我们有一个列表letters=['a', 'b', 'c', 'd', 'e'],并使用letters[1:3]对其进行切片,则得到的子列表将是['b', 'c', 'd']。这意味着我们正在选择具有索引1、2和3的列表字母。

letters[0:4:2]将返回一个子列表,仅包含偶数索引上的元素 - 0、2、4。

https://www.sangniao.com/

我们将使用切片符号的关键特征是它支持负索引。

这意味着letters[-1:]可以被解释为:获取列表letters中的所有元素,从最后一个元素到列表letters的末尾。结果的子列表将仅包含原始列表的最后一个元素:

lastElement = exampleList[-1:][0] # exampleList[-1:]仅返回子列表- [6] # exampleList[-1:][0]将返回最后一个元素- 6 print("最后一个元素: ", lastElement) print("exampleList: ", exampleList)

输出:

最后一个元素: 6 exampleList: [1, 2, 'Three', ['Four', 5], 6]

切片方法仅用于访问列表的元素并使用它们创建新列表 - 而不对原始列表执行任何更改。

使用反向迭代器

Python有两个内置函数,我们将在此方法中使用 - reversed()和next()。

reversed()接受一个列表作为参数,并返回该列表的反向迭代器,这意味着迭代是反向的,从最后一个元素开始,一直到第一个元素。next()接受一个迭代器并返回迭代器的下一个元素:

reversedIterator = reversed(exampleList) lastElement = next(reversedIterator) print("最后一个元素: ", lastElement)

输出:

最后一个元素: 6 exampleList: [1, 2, 'Three', ['Four', 5], 6]

反向迭代器方法仅用于以相反的顺序访问列表的元素 - 而不对原始列表执行任何更改。

应用程序 - 程序员的软件应用工具箱 - 鸟网

使用reverse()方法

reverse()方法用于反转列表的元素。它不需要任何参数,也不返回任何值,而是在原地反转原始列表。这意味着我们可以反转列表并访问新的第一个元素:

# 更新原始列表,反转其元素 exampleList.reverse() # 访问更新列表的第一个元素 lastElement = exampleList[0] print("最后一个元素: ", lastElement) print("exampleList: ", exampleList)

输出:

最后一个元素: 6 exampleList: [6, ['Four', 5], 'Three', 2, 1]

reverse()方法根据定义确实会更改原始列表,通过反转其元素来删除它。请记住,由于反转列表需要时间,因此这种方法可能会非常低效。

使用itemgetter()

operator模块提供了许多高效的方法,在Python中执行所有基本操作,例如数学和逻辑操作,以及其他对象比较和序列操作。

itemgetter()方法是operator模块中的许多方法之一。它接受一个或多个整数作为参数,并返回一个可调用的对象,可以看作是一种特殊的函数类型。

桑鸟sangniao.com

当我们调用operator.itemgetter(0)时,结果对象将是一个函数,用于获取集合中的第一个元素。我们还可以为该对象分配一个名称:

getFirstElement = operator.itemgetter(0)

现在,我们可以将列表传递给getFirstElement(people),它将返回来自列表people的第一个元素。

itemgetter()操作符支持负索引,因此检索最后一个元素归结为:

import operator getLastElement = operator.itemgetter(-1) lastElement = getLastElement(exampleList) print("最后一个元素: ", lastElement) print("exampleList: ", exampleList)

输出:

最后一个元素: 6 exampleList: [1, 2, 'Three', ['Four', 5], 6]

此方法不会修改原始列表 - 它生成一个可调用的对象,该对象使用索引访问它。

桑鸟sangniao.com

使用循环

现在,一个更手动和基本的方法是使用循环。我们可以遍历列表,使用列表的长度作为最终步骤。然后,在len(list)-1步骤上,我们可以简单地返回该项:

for i in range(0, len(exampleList)): if i == (len(exampleList)-1) : lastElement = exampleList[i] print("最后一个元素: ", lastElement) print("exampleList: ", exampleList)

输出:

最后一个元素: 6 exampleList: [1, 2, 'Three', ['Four', 5], 6]

这也不会更改列表,只是简单地访问一个元素。

结论

在Python中,有很多方法可以获取列表中的最后一个元素。选择正确的方法的主要考虑因素是您是否希望删除最后一个元素。

如果您需要获取最后一个元素而不对原始列表执行任何更改,则负索引方法是明显的赢家。这是解决此问题的最简单和最Pythonic的方法。

另一方面,如果您需要删除最后一个元素以及访问它,则应该选择pop()方法,这是执行此行为的内置方法。

版权声明:本文为桑鸟网博主「OETGUETOTBR」的原创文章,转载请附上原文出处链接及本声明。

本文标题:Python获取列表中的最后一个元素

本文地址:https://news.sangniao.com/p/2428011864



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3