根据条件查找最后一个元素索引

时间:2019-01-21 15:58:10

标签: python list

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

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

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

我发现'\ n'的首次出现很容易,等等:

lst.index('\n') 

是否可以找到不是特定字符串char的元素的最后一次出现?

1 个答案:

答案 0 :(得分:4)

您可以将nextenumerate一起使用,然后从列表的长度中减去结果:

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所建议的那样,通过倒数的range向后迭代:

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