2

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

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首先生成整个列表。

4

1 回答 1

7
>>> lista = ['a', 'b', 'foo', 'c', 'd', 'e', 'bar']
>>> next(i for i in lista if len(i) > 2)
'foo'
于 2010-05-04T10:18:43.283 回答