有没有更简洁的方法来获得第一次出现的东西?

时间:2010-05-04 10:00:58

标签: python iterator itertools

我有一个包含许多内容的列表:

lista = ['a', 'b', 'foo', 'c', 'd', 'e', 'bar']

我想获得列表中第一个满足谓词的项目,比如len(item) > 2。有没有比itertools'dropwhile和next?更简洁的方法呢?

first = next(itertools.dropwhile(lambda x: len(x) <= 2, lista))

我最初使用[item for item in lista if len(item)>2][0],但这需要python首先生成整个列表。

1 个答案:

答案 0 :(得分:7)

>>> lista = ['a', 'b', 'foo', 'c', 'd', 'e', 'bar']
>>> next(i for i in lista if len(i) > 2)
'foo'