Я написал функцию, которая позволяет мне просматривать список, сравнивать значения с предшественниками и утверждать, в какой момент список становится «стабильным» для определенного количества записей. Значения в списке представляют собой сигнал, который может достигать или не достигать стабильной точки. я пришел с этим:Подробнее pythonic способ фильтрации стабильных значений в списке
def unstableFor(points, maxStable):
count = 0;
prev = points[0]
for i in range(1, len(points)):
if points[i] == prev:
count = count + 1
else:
count = 0
prev = points[i]
if count >= maxStable:
return i
return len(points) - 1
Возвращаемое значение затем используется вызывающим убирания последнюю часть списка.
Выполняет свою работу, однако, я очень недоволен тем, насколько громоздким оно выглядит. Можете ли вы представить себе более питоновский, возможно, чисто функциональный способ выполнения этой операции фильтрации?
На стороне записки, я думаю, что 'count' следует начинать с 1 –
Можно также показать список ввода пробы и ожидаемый результат –
должны быть записи всегда подряд, чтобы стать стабильным? –