gpt4 book ai didi

python - 在 Python 中,如何找到列表中第一项不是某个值的索引?

转载 作者:太空狗 更新时间:2023-10-29 16:53:36 24 4
gpt4 key购买 nike

Python 的列表类型有一个 index(x) 方法。它采用单个参数 x,并返回列表中第一个值为 x 的项目的(整数)索引。

基本上,我需要反转 index(x) 方法。我需要获取列表中没有值 x 的第一个值的索引。我什至可以使用一个函数来返回第一个项目的索引,其值为 != None。

我可以想到一个带有递增计数器变量的“for”循环实现,但我觉得我遗漏了什么。是否存在可以处理此问题的现有方法或单行 Python 构造?

在我的程序中,当我处理从复杂的正则表达式匹配返回的列表时会出现这种情况。每个列表中除一项外的所有项的值为 None。如果我只需要匹配的字符串,我可以使用列表理解,如“[my_list] 中的 x 如果 x 不是无]”,但我需要索引才能确定我的正则表达式中的哪个捕获组实际导致比赛。

最佳答案

在第一场比赛中退出真的很容易:不用计算完整的列表理解(然后扔掉除第一项以外的所有内容),使用 next在 genexp 上。例如,假设当没有项目满足 != x 的条件时,您想要 -1

return next((i for i, v in enumerate(L) if v != x), -1)

这是 Python 2.6 语法;如果您坚持使用 2.5 或更早版本,.next() 是 genexp(或其他迭代器)的一种方法,并且不接受像 -1 这样的默认值> 上面(因此,如果您不想看到 StopIteration 异常,则必须使用 try/except)。但是, 在 2.5 之后发布更多版本是有原因的——语言及其内置的持续改进!-)

关于python - 在 Python 中,如何找到列表中第一项不是某个值的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2748235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com