Как я могу взять каждое число K числа в списке и сравнить с предыдущими числами N того же списка? - PullRequest
0 голосов
/ 17 апреля 2020

Я хочу взять каждое 10-е число в списке и сравнить его с последними 9 числами из 10-го числа того же списка и проверить, если какой-либо из последних 9 предыдущих числа попадают в диапазон + 100 / -100 от 10-го числа.

Итак, если у меня есть список, скажем, с 10 000 номеров;

large_list = [4504, 4405, 4302, 4706, 4332, 4656, 3045, 1056, 4556, 4032, 4504, 4405, 4302, 4706, 3342, 3356, 3245, 2356, 4156, 4300, .....]

В этом случае каждое 10-е число равно 4032 и 4300, и поэтому я хочу проверить, есть ли какие-либо из последних 9 числа от 4032 попадают в пределы 3932 и 4132, а затем проверяют, попадают ли какие-либо из последних 9 предыдущих чисел из 4300 в пределы 4200 и 4400, и так далее, и так далее.

1 Ответ

0 голосов
/ 17 апреля 2020

Вам просто нужно использовать встроенную функцию any(), чтобы увидеть, удовлетворяет ли какое-либо из последних 10 условий.

large_list = [4504, 4405, 4302, 4706, 4332, 
              4656, 3045, 1056, 4556, 4032, 
              4504, 4405, 4302, 4706, 3342, 
              3356, 3245, 2356, 4156, 4300]

within_range = []
step = 10

for i in range(step - 1, len(large_list), step):
    within_range.append(any(large_list[i] - 100 <= large_list[i-j] <= large_list[i] + 100 for j in range(1, step)))

Это будет go через каждый 10-й элемент в списке и добавьте True в список within_range, если любой из предыдущих 9 элементов был в пределах 100 от него, и False в противном случае.

...