我已经遇到过这种情况几次了:我有一个数组,其中包含我想要的元素,并且我想在不知道索引的情况下选择该元素,而是知道一些期望的属性(也许这是一个字典列表,我想字典elem
,使得elem['foo'] == 'bar'
)。Python - 从数组中选择一个具有某个属性的元素
我有一个解决方案是做一个过滤器(或更多的pythonically,列表理解),然后采取第一个元素(通常我知道被过滤的列表将是一个单身,所以采取第一个是唯一的) 。
Ex。给定一个列表x = [{'foo': 'bar_1'}, {'foo': 'bar_2'}]
,我想要的元素的值为'foo'
值为'bar2'
。所以我这样做:
y = [elem for elem in x if elem['foo'] == 'bar_2'][0]
有没有一个更标准的方式做到这一点?这似乎是一个非常简单和常见的用例。
可能重复[ Python:找到匹配谓词的序列中的第一个元素](http://stackoverflow.com/questions/8534256/python-find-first-element-in-a-sequence-that-matches-a-predicate) – 2014-08-28 21:53:50