【发布时间】:2011-02-14 10:46:46
【问题描述】:
Python 的列表类型有一个 index(x) 方法。它接受一个参数 x,并返回列表中第一个值为 x 的项目的(整数)索引。
基本上,我需要反转 index(x) 方法。我需要获取列表中没有值 x 的第一个值的索引。我什至可以使用一个函数来返回第一个项目的索引,其值为 != None。
我可以想到一个带有递增计数器变量的“for”循环实现,但我觉得我错过了一些东西。是否有现有的方法或单行 Python 构造可以处理这个问题?
在我的程序中,当我处理从复杂的正则表达式匹配返回的列表时会出现这种情况。每个列表中除一项外的所有项目的值为无。如果我只需要匹配的字符串,我可以使用像“[x for x in [my_list] if x is not None]”这样的列表理解,但我需要索引来确定我的正则表达式中的哪个捕获组实际上导致了比赛。
【问题讨论】:
-
您确定需要索引而不是实际值吗?
-
列表推导与 for 循环基本相同,但以不同的方式编写(通常更难阅读)。我建议只使用 for 循环(使用枚举)
标签: python list methods indexing