python - 根据条件查找最后一个元素索引
问题描述
我有一个字符串列表,例如
lst = ['2', '\n', '4', '\n', '\n']
我正在尝试确定不是'\n'的最后一个字符串元素的索引点。在上面的示例中,索引点将为 2,因为 '4' 是最后一个值不是 '\n' 的元素。
我可以找到第一次出现的 '\n' easy 等:
lst.index('\n')
有没有办法找到不是特定字符串 char 的元素的最后一次出现?
解决方案
您可以使用next
with 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
推荐阅读
- pic - PIC ADC 测量高于参考电压的电压值
- powershell - 检查 AD 帐户是否存在时重置 AD 帐户的 PowerShell 脚本
- typescript - 如何从 TypeScript 中的枚举值构建类型?
- android - 在 Fragments 中显示解析的 XML 数据,仅在应用启动和位置更改时解析
- alias - 在组件属性中使用 Nuxt.js 别名
- hl7 - 是否需要 OBR 段才能查看 HL7 消息中的 OBX 段附件?
- java - 如何禁用默认的 Spring OAuth2 REST API?
- erlang - 使用 Erlang 列表理解查找元素
- android - onLayoutChange() 调用次数过多
- python-3.x - File.choose python 中的等价物?