134 121 149 532 250Как отслеживать числа типа
100 150 200 300тоесть большие целые числа?
Тут еще момент что может быть 148 а потом 152 а нужно понять что 150 прошло по шкале но такого числа не было
134 121 149 532 250Как отслеживать числа типа
100 150 200 300тоесть большие целые числа?
def threshold(*levels): max_value = 0 def hold(a, b): def process(x): return x in range(a, b) and max_value < a and a return process def process(var): nonlocal max_value check_lst = (hold(levels[i], levels[i+1]) for i in range(len(levels)) if i+1 < len(levels)) for check in check_lst: out = check(var) if out: max_value = out return out return process f = threshold(50, 100, 150, 200, 250, 300) test_lst = [45, 56, 88, 104, 152, 133, 77, 201, 196, 250, 258] for i in test_lst: signal = f(i) if signal: print(f'i={i}, signal - {signal}')
i=56, signal - 50
i=104, signal - 100
i=152, signal - 150
i=201, signal - 200
i=250, signal - 250
Process finished with exit code 0
def threshold(*levels): max_value = 0 def hold(a, b): def process(x): out = all([x in range(a, b), max_value < a]) and a\ or all([x in range(a, b), max_value > a]) and b return out return process def process(var): nonlocal max_value check_lst = (hold(levels[i], levels[i+1]) for i in range(len(levels)) if i+1 < len(levels)) for check in check_lst: out = check(var) if out: max_value = out return out return process f = threshold(50, 100, 150, 200, 250, 300) test_lst = [45, 56, 88, 104, 152, 133, 77, 201, 196, 250, 258] for i in test_lst: signal = f(i) if signal: print(f'i={i}, signal - {signal}')
i=56, signal - 50
i=104, signal - 100
i=152, signal - 150
i=133, signal - 150
i=77, signal - 100
i=201, signal - 200
i=196, signal - 200
i=250, signal - 250
Process finished with exit code 0