Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python过滤器函数-单个结果_Python_Python 3.x_Built In - Fatal编程技术网

Python过滤器函数-单个结果

Python过滤器函数-单个结果,python,python-3.x,built-in,Python,Python 3.x,Built In,Python中是否有内置函数,在给定列表和验证函数的情况下返回单个结果 例如,我知道我可以做到以下几点: resource = list(filter(lambda x: x.uri == uri, subject.resources))[0] 上面将根据ther resource.uri字段从资源列表中提取资源。虽然这个字段值是uinique,所以我知道我将有1或0个结果过滤器函数将迭代整个列表。在我的例子中是20个元素,但我想知道是否有其他内置方法在第一次匹配时停止迭代。请参阅 下

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

例如,我知道我可以做到以下几点:

    resource = list(filter(lambda x: x.uri == uri, subject.resources))[0]
上面将根据ther resource.uri字段从资源列表中提取资源。虽然这个字段值是uinique,所以我知道我将有1或0个结果<代码>过滤器函数将迭代整个列表。在我的例子中是20个元素,但我想知道是否有其他内置方法在第一次匹配时停止迭代。

请参阅

下一步(迭代器[,默认值])

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

e、 g.就你而言:

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

我一直在想同样的事情很久了。谢谢:)这似乎并没有完全回答这个问题,据说字段值是唯一的,因此开发人员希望此时有0个或1个对象,这意味着如果有多个记录,我们应该有一个错误,这个答案不会检测到。我一直在想类似的事情有一段时间了,但这似乎并不能完全解决问题。@tikej然后是验证,您需要迭代整个列表以获得计数:
sum(x.uri==subject.resources中x的uri)
,或者再次使用
next
调用上面的代码段。