Python过滤功能 - 单个结果

时间:2015-04-10 13:47:40

标签: python python-3.x built-in

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

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

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

以上将基于ther resource.uri字段从资源列表中提取资源。虽然这个字段值是uinique,但我知道我要么有1个或0个结果。 filter函数将迭代整个列表。在我的情况下它的20个元素,但我想知道是否有其他内置的方法来阻止第一场比赛的迭代。

1 个答案:

答案 0 :(得分:8)

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

  

next(迭代器[,默认])

     

通过调用 next ()方法从迭代器中检索下一个项目。如果给定default,则在迭代器耗尽时返回,否则引发StopIteration。

e.g。在你的情况下:

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