在 Python 中有很多方法可以获取到列表的最后一个元素,本文介绍以下四种方法:

  • 正向索引法
  • 负向索引法 (性能最好)
  • 解包法
  • pop法

以上方法的使用示例如下。

# 定义一个列表
a_list = [1,3,5,7,9]

# 正向索引法
last_item = a_list[len(a_list)-1]

# 负向索引法
last_item = a_list[-1]

# 解包法
*_, last_item = a_list

# pop法
last_item = a_list.pop()

第三种方法看起来可能比较陌生,它是使用了 Python 可迭代对象的解包方法 (unpack) 实现的,感兴趣的朋友可以阅读我的文章: 如何在 Python 中解包可迭代对象

下面使用 timeit 库测试一下前3种方法的性能,测试代码如下:

import timeit

setup = """
a_list = [1,3,5,7,9]
"""

method_1_test_code = """
last_item = a_list[len(a_list)-1]
"""

method_2_test_code = """
last_item = a_list[-1]
"""

method_3_test_code = """
*_, last_item = a_list
"""

method_1_taking_time = timeit.timeit(stmt=method_1_test_code, setup=setup, number=100)

method_2_taking_time = timeit.timeit(stmt=method_2_test_code, setup=setup, number=100)

method_3_taking_time = timeit.timeit(stmt=method_3_test_code, setup=setup, number=100)

print('正向索引法耗时: ' + str(method_1_taking_time))

print('负向索引法耗时: ' + str(method_2_taking_time))

print('解包法: ' + str(method_3_taking_time))

测试结果:

正向索引法耗时: 1.2899981811642647e-05
负向索引法耗时: 6.799993570894003e-06
解包法: 3.91000066883862e-05

从测试结果可以看出负向索引法性能最好。

有关 Python 代码运行速度的测试方法可参见我的文章:如何测试 Python 代码的速度 - datetime, timeit

官方公众号

💯本站文章同步发表在官方公众号 ReadingHere,关注公众号您将在第一时间了解本站最新文章和资讯。

❤️欢迎您关注本站官方公众号 ReadingHere


版权声明

本文由ReadingHere原创,未经ReadingHere授权不得转载、摘编。已经授权使用的,应在授权范围内使用,并注明来源: www.readinghere.com。违反上述声明者,ReadingHere将追究其相关法律责任。


交流合作

如需交流咨询或商务合作请扫描下图微信二维码联系。