, , k , , ,
def k_closest(sample, pivot, k):
return sorted(sample, key=lambda i: abs(i - pivot))[:k]
:
>>> l = [1,2,3,4]
>>> k_closest(l, 3, 2)
[3,2]
>>> k_closest(l, 3, 3)
[3,2,4]
, :
def k_closest(sample, pivot, k):
return sorted(enumerate(sample), key=lambda (n, v): abs(v - pivot))[:k]
, ,
>>> l = [1,2,3,4]
>>> k_closest(l, 3, 2)
[(2, 3), (1, 2)]
>>> k_closest(l, 3, 3)
[(2, 3), (1, 2), (3, 4)]
- , - ,
, ,
import operator
def k_closest(sample, pivot, k):
return map(operator.itemgetter(0), sorted(enumerate(sample), key=lambda (n, v): abs(v - pivot)))[:k]
>>> k_closest(l, 3, 2)
[2, 1]
>>> k_closest(l, 3, 3)
[2, 1, 3]