@schokk64rus

Как удалить повторяющиеся элементы списка с учётом диапазона?

Как проверить каждый элемент списка на условие попадания в диапазон, созданный другим элементом (±0.1) и в случае попадания оставить только один из этих элементов?

Пробовал что-то вроде этого:

potential = [4.356964111328, 3.846180915833, 3.840909004211, 3.563719987869, 3.558650016785, 3.758785963058, 4.202857017517, 4.669840812683]
potential_new = []
for i in range(0, len(potential), 1):
	for n in range(0, len(potential), 1):
		if potential[n] == potential[i]:
			continue
		else:
			if potential[n] - 0.1 <= potential[i] <= potential[n] + 0.1:
				continue
			else:	
				potential_new.append(potential[i])

Нужно:

[4.356964111328, 3.846180915833, 3.563719987869, 3.758785963058, 4.202857017517, 4.669840812683]
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
0xD34F
@0xD34F
new_arr = []
for n in arr:
  if len(new_arr) == 0 or abs(new_arr[-1] - n) > 0.1:
    new_arr.append(n)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы