有没有办法在列表理解中返回值?

时间:2017-08-18 20:50:01

标签: python python-3.x

我想知道我是否可以在列表理解中返回值

[return role_ for role_ in self.roles if role.name==parameter]

当然它不起作用。目前我不得不使用经典的循环

for role_ in self.roles:
    if role_.name == parameter:
        return role_

3 个答案:

答案 0 :(得分:7)

没有。列表理解的目的是建立一个列表,而不是保存代码行。

由于您不希望列表作为结果,因此列表推导是该作业的错误工具。循环非常好。

答案 1 :(得分:6)

next() function与生成器表达式一起使用:

const requestPromise = function(resolve, reject) {
    return (response) => {
        let body = [];

        response.on('data', body.push);
        response.on('end', () => {
            body = body.join('');
            if (body == "") {
                reject("Body is empty");
            } else {
                resolve(body);
            }
        });
    };
};

这将返回第一个匹配的var timeOperations = ["2013-03-09", "2013-03-16", "2013-03-23", "2013-03-30", "2013-04-06"].map(function(value){ return moment(value, "YYYY-MM-DD").format('MMM-DD').toString(); }); var barChartData = { labels: timeOperations, datasets: [{ borderColor: "#3e95cd", data: [10943, 29649, 6444, 2330, 36694], fill: false, borderWidth: 2 }, { borderColor: "#ff3300", data: [9283, 1251, 6416, 2374, 9182], fill: false, borderWidth: 2 }] }; 值,如果没有此值,则返回return next((role_ for role_ in self.roles if role_.name == parameter), None)

你不能使用列表理解,不,因为你没有生成列表

答案 2 :(得分:5)

最接近的是使用生成器表达式调用.children()

$('form').children().prop('disabled',true)