Python中是否有一个内置函数可以返回给定列表和验证函数的单个结果?
例如,我知道我可以执行以下操作:
resource = list(filter(lambda x: x.uri == uri, subject.resources))[0]
以上将基于ther resource.uri字段从资源列表中提取资源。虽然这个字段值是uinique,但我知道我要么有1个或0个结果。 filter
函数将迭代整个列表。在我的情况下它的20个元素,但我想知道是否有其他内置的方法来阻止第一场比赛的迭代。
答案 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)