考虑这个简单的例子
mylist = [-1,-2,3,4,5,6]
for idx, el in enumerate(mylist):
if el > 0:
myidx, myel = idx, el
break
myidx, myel
Out[20]: (2, 3)
我感兴趣的是在 python 列表中查找与特定条件匹配的第一个索引和相应的第一个元素(在这里,这只是 > 0)。
在上面的代码中,我使用循环遍历元素enumerate
然后使用 if 子句查找正确的元素。这对我来说看起来非常麻烦。有一个更好的方法吗?例如使用本机 python 函数?
Thanks!
像这样的东西应该有效:
l = [-1,-2,3,4,5,6]
list(x > 0 for x in l).index(True)
# Output: 2
要找到所有模式,我们可以使用 python 内置函数
from itertools import filterfalse
f = filterfalse(lambda x: x[1] <= 0, enumerate(l))
print(list(f))
# [(2, 1), (3, 2), (4, 3)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)