gpt4 book ai didi

python - 查找列表python中最后一次出现的项目

转载 作者:太空狗 更新时间:2023-10-29 22:12:54 26 4
gpt4 key购买 nike

我希望在序列“s”中找到项目“x”的最后一次出现,或者如果没有并且第一个项目的位置等于 0 则返回 None

这是我目前拥有的:

def PositionLast (x,s):

count = len(s)+1
for i in s:
count -= 1
if i == x:
return count
for i in s:
if i != x:
return None

当我尝试时:

>>>PositionLast (5, [2,5,2,3,5])
>>> 4

这是正确答案。但是,当我将“x”更改为 2 而不是 5 时,我得到了这个:

>>>PositionLast(2, [2,5,2,3,5])
>>> 5

这里的答案应该是2。我很困惑这是怎么发生的,如果有人能解释我需要纠正的地方,我将不胜感激。我也想用最基本的代码来完成这个。

谢谢。

最佳答案

为了高效地做到这一点,enumerate reverse 中的列表排序并返回第一个匹配项的索引(或默认为 None),例如:

def PositionLast(x, s):
for i, v in enumerate(reversed(s)):
if v == x:
return len(s) - i - 1 # return the index in the original list
return None

避免使用切片符号(例如 s[::-1])反转列表,因为这会在内存中创建一个新的反转列表,这对于任务来说不是必需的。

关于python - 查找列表python中最后一次出现的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34438901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com