查找元组中与条件匹配的所有元素

时间:2015-03-05 17:14:04

标签: python function

这是我的功能:

data = (130, 150, 200, 100, 130, 147)

def find_elevated_bloodpressure(bloodpressure, upper_limit):
    for x in bloodpressure:
        if x > upper_limit:
            return x

这只返回列表中的第一个,但我希望它返回所有这些。

find_elevated_bloodpressure(data, 140)

如何获取符合条件x > upper_limit的所有元素的列表?

2 个答案:

答案 0 :(得分:5)

当你调用return时,该函数接受传递给return的任何内容,并将其作为唯一值返回。如果你想要满足条件的所有元素,你可以做一些事情,比如返回列表理解:

return [x for x in bloodpressure if x > upper_limit]

或将其用作发电机

#return x <-- replace with yield
yield x

答案 1 :(得分:1)

您需要将结果构建到列表中,然后返回。像这样:

data = (130, 150, 200, 100, 130, 147)

def find_elevated_bloodpressure(bloodpressure, upper_limit):
    results = []
    for x in bloodpressure:
        if x > upper_limit:
            results.append(x)
    return results