首页 > 解决方案 > 根据条件查找最后一个元素索引

问题描述

我有一个字符串列表,例如

lst = ['2', '\n', '4', '\n', '\n']

我正在尝试确定不是'\n'的最后一个字符串元素的索引点。在上面的示例中,索引点将为 2,因为 '4' 是最后一个值不是 '\n' 的元素。

我可以找到第一次出现的 '\n' easy 等:

lst.index('\n') 

有没有办法找到不是特定字符串 char 的元素的最后一次出现?

标签: pythonlist

解决方案


您可以使用nextwith enumerate,然后从列表的长度中减去结果:

lst = ['2', '\n', '4', '\n', '\n']
idx = len(lst) - next(i for i, val in enumerate(reversed(lst), 1) if val != '\n')  # 2

或者,正如@Chris_Rands 所提议的,通过倒计时的 a 向后迭代range

idx = next(i for i in range(len(lst)-1, -1, -1) if lst[i] != '\n')  # 2

推荐阅读