在python中查找类似项目的最佳方法

时间:2010-04-02 03:46:21

标签: python sorting

我有1M个数字:N []和1个单个数字n,现在我想在那些与该单个数字相似的1M数字中找到,比如说[n-10,n + 10]的区域。 python中最好的方法是什么?我是否必须对1M编号进行排序并进行迭代?

3 个答案:

答案 0 :(得分:3)

[x for x in N if n - 10 <= x <= n + 10]

答案 1 :(得分:1)

results=[x for x in numbers if x >= n-10 and x <= n+10]

答案 2 :(得分:1)

另一种解决方案:

is_close_to_n = lambda x: n-10 <= x <= n+10
result = filter(is_close_to_n, N)

概括一点:

def is_close_to(n):
    f = lambda x: n-10 <= x <= n+10
    return f

result12 = filter(is_close_to(12), N)
result123 = filter(is_close_to(123), N)

排序。排序通常是O(n log n);蛮力搜索是O(n)。