有没有更简洁的方法来获取某些内容的第一次出现?
我有一个包含很多内容的列表:
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 首先生成整个列表。
I have a list which contains a number of things:
lista = ['a', 'b', 'foo', 'c', 'd', 'e', 'bar']
I'd like to get the first item in the list that fulfils a predicate, say len(item) > 2
. Is there a neater way to do it than itertools' dropwhile and next?
first = next(itertools.dropwhile(lambda x: len(x) <= 2, lista))
I did use [item for item in lista if len(item)>2][0]
at first, but that requires python to generate the entire list first.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)