Python过滤函数——单一结果

标签 python python-3.x built-in

<分区>

Python 中是否有一个内置函数可以在给定列表和验证函数的情况下返回单个结果?

例如,我知道我可以执行以下操作:

    resource = list(filter(lambda x: x.uri == uri, subject.resources))[0]

以上将根据 resource.uri 字段从资源列表中提取资源。尽管此字段值是唯一的,所以我知道我将得到 1 个或 0 个结果。 filter 函数将迭代整个列表。在我的例子中它有 20 个元素,但我想知道是否有其他内置方法可以在第一次匹配时停止迭代。

最佳答案

参见 https://docs.python.org/3/library/functions.html#next

next(iterator[, default])

Retrieve the next item from the iterator by calling its next() method. If default is given, it is returned if the iterator is exhausted, otherwise StopIteration is raised.

例如在你的情况下:

resource = next(filter(lambda x: x.uri == uri, subject.resources), None)

关于Python过滤函数——单一结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29563153/

相关文章:

python - 将带有数字数组的嵌套字典保存到 CSV 文件中

python-3.x - 平铺窗口大小调整问题

matlab - 如何重载清除

python - 检查系统是否存在字体 python (与操作系统无关)

python - 检查字符串是否具有特定格式

python - 在pygame中检测键盘输入时只有某些键起作用

python - Pandas 根据行、列和日期过滤 DataFrame

python-3.x - 打印对部分完成的 Python 异步事件循环的响应,同时在响应后仍完成任务

javascript - 为什么 toString 总是以严格模式运行?

VB6元组等效吗?