当前位置:  开发笔记 > 编程语言 > 正文

从过滤器返回第一个元素或无

如何解决《从过滤器返回第一个元素或无》经验,为你挑选了1个好方法。

是否有一种方便的方法可以返回第一个元素或None从中返回filter

filter(lambda x: x == 5, [3, 5, 5, 8]) # ?? 5
filter(lambda x: x == 35, [3, 5, 5, 8]) # ?? None

而不是必须致电list()然后[0]呢?

我的问题是关于方法filter而不是列表理解。



1> vaultah..:

filter对象本质上是迭代器。只需使用该next函数即可获取第一个值:

next(filter(lambda x: x == 35, [3, 5, 5, 8]), None)

next(it, None)None如果next(it)加薪将返回StopIteration

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有