当前位置: 首页 > 面试题库 >

如何在Python列表中查找项目的最后一次出现

丁昌翰
2023-03-14
问题内容

说我有这个清单:

li = ["a", "b", "a", "c", "x", "d", "a", "6"]

据帮助显示,没有内置函数返回字符串的最后一次出现(如的反向index)。因此,基本上,如何找到"a"给定列表中的最后一个出现?


问题答案:

如果您实际上只使用示例中显示的单个字母,那么str.rindex它将很方便。这就提出了一个ValueError如果没有这样的项目,相同的错误类作为list.index将提高。演示:

>>> li = ["a", "b", "a", "c", "x", "d", "a", "6"]
>>> ''.join(li).rindex('a')
6

对于更一般的情况,您可以list.index在反向列表中使用:

>>> len(li) - 1 - li[::-1].index('a')
6

此处的切片将创建整个列表的 副本 。简短列表就可以了,但是对于li很大的情况,使用惰性方法可以提高效率:

def list_rindex(li, x):
    for i in reversed(range(len(li))):
        if li[i] == x:
            return i
    raise ValueError("{} is not in list".format(x))

一线版:

next(i for i in reversed(range(len(li))) if li[i] == 'a')


 类似资料:
  • 假设我有一个数组 查找出现次数最多的项的最有效和“pythonic”方法是什么?它在列表中出现了多少次?

  • 问题内容: 我需要列表的最后9个数字,而且我敢肯定有一种切片方法,但是我似乎无法理解。我可以这样获得前9个: 问题答案: 您可以在切片运算符中使用负整数。这是使用python CLI解释器的示例: 重要的是

  • 问题内容: 如果要尝试在列表中查找某项的索引,则可以采用几种不同的方法来完成,这就是我所知道的最快的方法 另一种方式不是pythonic且速度较慢 第一种方法无疑是更快的方法,但是如果您想更快地进行操作,那该怎么办呢?对于第一个索引使用方法 速度很快,但无法处理多个索引如何加快速度? 问题答案: 假设您想要一个列表作为输出:对于我的测试,所有选项似乎都表现出相似的时间性能,列表理解最快(几乎没有)

  • 我们有一个列表: 每个条目是一个由两个字符串组成的字符串,由空格分隔。目标是找到出现次数最多的所有条目(即10.0和10.3,共出现2次)。 下面的代码有效。问题是,这3条语句是否可以减少到1条或至少2条?

  • 本文向大家介绍程序查找在python中出售n个项目后剩余的项目数,包括了程序查找在python中出售n个项目后剩余的项目数的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个数字列表,称为项目,另一个值为n。推销员在袋子里的物品带有随机ID。推销员可以从购物袋中删除多达n个物品。取出n次后,我们必须找到袋子中不同ID的最小数量。 因此,如果输入类似于items = [2,2,6,6] n =

  • 问题内容: 我有两个清单如下 和 我试图找出在每个列表中出现最多的值。这就是我尝试过的。 我已经走了这么远,但我想不出如何在删除列表中的所有值之前停止的方法。 问题答案: 如果要查找列表中每个元素的出现,可以使用from的模块:- 因此,前两个元素在您的列表中最常见。 或者,您还传递参数来指定所需的元素数:- 更新:- 您也可以先找出计数,然后再找到具有该值的元素总数,然后可以将其用作参数:-

  • 你好,伙计们,我想使我的列表视图这样,一个项目滚动一次和平滑。这里是我尝试到目前为止,但没有运气:(请帮助和感谢提前 自定义ListView类 }