繁体   English   中英

有什么方法可以在列表理解中返回值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM