Python найти сходство в списке - PullRequest
0 голосов
/ 18 мая 2019

Я хочу, чтобы функция, которая брала список и основывалась на чувствительности, давала мне числа, похожие на [4,4.01,3.9] или [71,69,72]

Я пытался вычесть каждое значение, и если оно меньше чувствительностидобавьте эти числа в кортеж, например:

abs(4 - 4.01)= 0.01 => 0.01 < 0.5 => result += [(4,4.01)]

или

abs(4.01 - 3.9)= 0.11 => 0.11 < 0.5 => result += [(4.01,3.9)]

, но получится

[(4, 4.1), (4, 3.9), (4.1, 4), (4.1, 3.9), (3.9, 4), (3.9, 4.1)]

я не хочу этого, яхочу [4.01,4,3.9] от [4,4.01,3.9,5,10,45]

питон

def collation(arr):
    ret = []
    xi = 0
    while xi < len(arr):
        yi = 0
        while yi < len(arr):
            if (xi == yi):
                yi += 1
                continue
            if (abs(arr[xi] - arr[yi]) <= Sens):
                ret += [(arr[xi], arr[yi])]
            yi += 1
        xi += 1
    return ret

1 Ответ

0 голосов
/ 19 мая 2019

Вы можете сделать это, используя функцию filter, чтобы получить все эти значения, которые удовлетворяют вашему условию:

inlist = [4,4.01,3.9,5,10,45]
point_value = 4
threshold = 0.5
outlist = list(filter(lambda elem: round(abs(elem-point_value),2) <= threshold, inlist))
print(outlist)

Выход:

[4, 4.01, 3.9]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...