簡體   English   中英

根據條件查找最后一個元素索引

[英]Finding last element index based on condition

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

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

我試圖確定不是'\\ n'的最后一個字符串元素的索引點。 在上面的示例中,索引點將為2,因為“ 4”是最后一個元素,其值不是“ \\ n”。

我發現'\\ n'的首次出現很容易,等等:

lst.index('\n') 

有沒有辦法找到不是特定字符串char的元素的最后出現?

您可以將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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM