Python|列表中某个元素的最后一次出现
有很多方法可以找出列表中元素的第一个索引,因为Python在其语言中提供了index()
函数,该函数返回列表中元素第一次出现的索引。但是,如果想要获取列表中元素的最后一次出现,通常必须应用更长的方法。
让我们讨论一些速记来完成这个特定的任务。
方法 #1:使用join() + rfind()
这通常是我们可以用来完成此任务的技巧。加入整个列表,然后使用字符串函数rfind()
从右侧获取第一个元素,即列表中元素的最后一个索引。
# Python3 code to demonstrate
# to get last element occurrence
# using join() + rfind()
# initializing list
test_list = ['G', 'e', 'e', 'k', 's', 'f', 'o', 'r',
'g', 'e', 'e', 'k', 's']
# using join() + rfind()
# to get last element occurrence
res = ''.join(test_list).rindex('e')
# printing result
print ("The index of last element occurrence: " + str(res))
输出:
The index of last element occurrence: 10
方法 #2:使用列表切片 + index()
使用列表切片我们反转列表并使用常规索引方法来获取元素第一次出现的索引。由于反向列表,返回最后一次出现而不是列表的第一个索引。
# Python3 code to demonstrate
# to get last element occurrence
# using List Slice + index()
# initializing list
test_list = ['G', 'e', 'e', 'k', 's', 'f', 'o', 'r',
'g', 'e', 'e', 'k', 's']
# using List Slice + index()
# to get last element occurrence
res = len(test_list) - 1 - test_list[::-1].index('e')
# printing result
print ("The index of last element occurrence: " + str(res))
输出:
The index of last element occurrence: 10
方法 #3:使用max() + enumerate()
我们使用 enumerate函数来获取具有特定元素的所有元素的列表,然后使用max()
来获取最大值,即列表的最后一个索引。
# Python3 code to demonstrate
# to get last element occurrence
# using max() + enumerate()
# initializing list
test_list = ['G', 'e', 'e', 'k', 's', 'f', 'o', 'r',
'g', 'e', 'e', 'k', 's']
# using max() + enumerate()
# to get last element occurrence
res = max(idx for idx, val in enumerate(test_list)
if val == 'e')
# printing result
print ("The index of last element occurrence: " + str(res))
输出:
The index of last element occurrence: 10