Python过滤器函数-单个结果
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个元素,但我想知道是否有其他内置方法在第一次匹配时停止迭代。请参阅 下
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
调用上面的代码段。