@mavar

Как сравнить списки по пороговому значению?

Есть два списка:
List_B = [0.32, 0.04, 0.98, 0.36, 0.95]
List_A = [0.1, 0,1, 0.99, 0.1, 0.99]


Список list_A - эталонный, с ним мы проводим сравнение.

Мне нужно провести приблизительное сравнение каждого элемента и сказать что списки похожи.
Условие похожести в следующем пороговом значении:
for k in list_A:
    if  ( list_B[k] > 0.9 and list_A[k] = 0.99 )
        print("Схожие")
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
@SlivTime
Вы как-то неоднозначно сформулировали признак похожести, но это не беда. Ошибка в том, что в цикле for k in ... в k будет значение элемента, а не его индекс. Если нужно сравнивать 2 списка поэлементно, используйте zip:
for a, b in zip(list_a, list_b):
    ...


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

lst_a = [0.1, 0,1, 0.99, 0.1, 0.99]
lst_b = [0.32, 0.04, 0.98, 0.36, 0.95]

compare_func = lambda a, b: b > 0.9 and a == 0.99

is_similar = all(compare_func(a, b) for a, b in zip(lst_a, lst_b))


compare_func, очевидно, неправильная, но тут уж проблем быть не должно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы