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

标签 python python-3.x

是否有一种方便的方法从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而不是列表理解。

最佳答案

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

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

如果next(it, None)引发Nonenext(it)将返回StopIteration

关于python - 从过滤器返回第一个元素或无,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34026045/

相关文章:

python - 根据条件使用带格式的 f 字符串

python-3.x - 在 GitLab 中创建一个 pyqt 构建

python-3.x - 无法找到 PyForms 'loggingbootstrap' 依赖项

python - 从多个其他变量创建一个 pandas 变量的 pythonic 方法是什么

python重新反向引用重复元素

python - 如何根据 CPU 的限制处理多进程

python - 对序列号应用 pandas groupby 以从每列中获取单个值

Python:来自 import.class 的未绑定(bind)方法 __init__()

python - 在 Python 中使用 BeautifulSoup 解析 HTML

python - 是否有用于 Python 2.7 的 64 位二进制版本的 ujson 或 cjson