[英]Is there any way to return value in list comprehension?
我想知道我是否可以像这样在列表理解中返回值
[return role_ for role_ in self.roles if role.name==parameter]
当然不行了。 此刻我不得不使用经典的循环
for role_ in self.roles:
if role_.name == parameter:
return role_
不。列表理解的目的是建立一个列表,而不是保存代码行。
由于您不希望将列表作为结果,因此列表理解是该工作的错误工具。 循环非常好。
最接近的是带有生成器表达式的next
一个调用:
return next(role_ for role_ in self.roles if role_.name==parameter)
将next()
函数与生成器表达式一起使用:
return next((role_ for role_ in self.roles if role_.name == parameter), None)
这将返回第一个匹配的role_
值,如果没有该值,则返回None
。
您不能使用列表理解,不,因为您没有生成列表 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.