📅  最后修改于: 2023-12-03 15:04:24.489000             🧑  作者: Mango
在Python中,我们可以使用内置函数list.count()
获取列表中某个元素出现的次数,但是如果我们想要获取某个元素最后一次出现的位置,该怎么做呢?
使用循环遍历列表,从后往前查找元素最后一次出现的位置,示例代码如下:
def last_index(lst, element):
for i in range(len(lst)-1, -1, -1):
if lst[i] == element:
return i
return -1 # 若没有该元素,返回-1
# 示例
lst = [1, 2, 3, 4, 2, 5]
element = 2
print(last_index(lst, element)) # 输出4
上述代码中,我们首先从列表末尾开始循环,然后判断当前元素是否等于目标元素。若是,则返回当前索引位置;若否,则继续循环。当遍历完列表仍未找到目标元素时,返回-1表示列表中不存在该元素。
使用内置函数list[::-1]
将列表反转后查找元素最后一次出现的位置,示例代码如下:
def last_index(lst, element):
if element in lst:
return len(lst) - lst[::-1].index(element) - 1
else:
return -1
# 示例
lst = [1, 2, 3, 4, 2, 5]
element = 2
print(last_index(lst, element)) # 输出4
上述代码中,我们首先判断目标元素是否在列表中,若在,则使用list[::-1]
将列表反转;然后使用list.index()
获取目标元素在反转后列表中出现的第一个位置,最后将反转后位置转换为原列表位置并返回即可。当列表中不存在目标元素时,返回-1表示不存在该元素。
总的来说,方法一适用于对列表中所有元素都进行遍历,空间复杂度较低,时间复杂度为O(n);而方法二适用于对单个元素进行查找,空间复杂度较高,时间复杂度为O(n)。在实际应用中,我们可以根据具体情况选择不同的方法。