擅长:python、mysql、java
<p>这个怎么样?</p>
<pre><code>>>> tuple_list = [("pineapple", 5), ("cherry", 7), ("kumquat", 3), ("plum", 11)]
>>> [x for x, y in enumerate(tuple_list) if y[1] == 7]
[1]
>>> [x for x, y in enumerate(tuple_list) if y[0] == 'kumquat']
[2]
</code></pre>
<p>正如评论中指出的,这将得到所有匹配。为了得到第一个,你可以:</p>
<pre><code>>>> [y[0] for y in tuple_list].index('kumquat')
2
</code></pre>
<p>在评论中有一个很好的讨论,关于发布的所有解决方案之间的速度差。我可能有点偏颇,但我个人会坚持使用一行代码,因为我们讨论的速度与为这个问题创建函数和导入模块相比是微不足道的,但是如果您计划对大量元素执行此操作,您可能需要查看提供的其他答案,因为它们比我提供的要快提供。</p>