擅长:python、mysql、java
<p>您可以像这样使用<code>lambda</code>和<code>filter</code>的组合:</p>
<pre><code>mylist = [-1,-2,3,4,5,6]
myidx, myel = list(filter(lambda el: el[1] > 0, enumerate(mylist)))[0]
print("({}, {})".format(myidx, myel))
</code></pre>
<p>说明:</p>
<p><code>filter()</code>函数提供了一种优雅的方式来过滤掉所有元素,它将函数和列表作为参数。这里是<code>lambda</code>和<code>mylist</code>。因为您想要获得相应的索引,所以我们需要使用<code>enumerate</code>来结束<code>enumerate(mylist)</code></p>
<p>基本上,<code>enumerate(mylist)</code>返回索引和相应值的元组。这里的条件是值和<code>0</code>之间的比较,这就是为什么我们得到<code>el[1]</code>而不是<code>el[0]</code>来与<code>0</code>进行比较</p>
<p>结果将被转换为<code>list</code>。此列表包括满足我们条件的所有对<code>(index, value)</code>。这里我们想要得到第一对,这就是为什么我们在末尾有<code>[0]</code></p>
<p>输出:</p>
<pre><code>(2, 3)
</code></pre>