0

我想知道是否有人可以帮助我解决家庭作业问题。

编写一个函数 func(a,x),它接受一个数组 a, x 是两个数字,并返回一个仅包含 a 的值大于或等于 x 的数组

我有

def threshold(a,x):
    for i in a:
        if i>x: print i

但这是错误的方法,因为我没有将它作为数组返回。有人可以提示我正确的方向。非常感谢提前

4

5 回答 5

7

使用列表推导

[i for i in a if i>x]
于 2012-09-23T18:27:03.250 回答
6

使用内置功能filter()

In [59]: lis=[1,2,3,4,5,6,7]
In [61]: filter(lambda x:x>=3,lis)  #return only those values which are >=3
Out[61]: [3, 4, 5, 6, 7]
于 2012-09-23T18:23:21.010 回答
4

您可以使用列表理解

def threshold(a, x):
    return [i for i in a if i > x]
于 2012-09-23T18:26:43.703 回答
2
def threshold(a,x):
    vals = []
    for i in a:
        if i >= x: vals.append(i)
    return vals
于 2012-09-23T18:27:18.537 回答
0

我认为作业问题是实际实现一个过滤器功能。不只是使用内置的。

def custom_filter(a,x):
    result = []
    for i in a:
        if i >= x:
            result.append(i)
    return result
于 2012-09-23T18:28:36.013 回答