返回大于x的数组值

时间:2013-09-20 15:03:33

标签: python python-2.7

我想编写一个返回大于或等于x的数组值的函数

这是我的代码:

def threshold(a,x): 
    b = a[x:]
    return b

如果x3a[1,2,3,4,5],则该函数将返回[3,4,5]

**忘了提及值可能没有排序。输入可以是[1,3,2,5,4],如果x是3 **则必须返回[3,4,5]

4 个答案:

答案 0 :(得分:5)

使用生成器表达式和sorted

>>> def threshold(a, x):
...     return sorted(item for item in a if item >= x)
... 
>>> threshold([1,3,2,5,4], 3)
[3, 4, 5]

答案 1 :(得分:2)

使用内置函数filter是另一种方法:

def threshold(a, x):
    return filter(lambda e: e>= x, a)

>>> threshold([1, 3, 5, 2, 8, 4], 4)
[5, 8, 4]

答案 2 :(得分:1)

这是另一个版本

threshold = (lambda a, x :filter(lambda element: element >= x, a))

答案 3 :(得分:0)

您可能需要考虑numpy

import numpy as np
a = np.array([1,2,3,4,5])
a[a>2]

给出

array([3,4,5])