, если у вас есть список значений:
values=['130','90','150','123','133','120','160',
'45','67',
'55','34','130','120','180','130','10']
и хотел сканировать с размером окна 6, и если 4 из 6 были> = 100, то продолжайте сканирование до тех пор, пока не будет 3 подряд, которые были <100, а затем не включайте их в список </p>
так, например, с пустым списком с именем results:
results=[]
я хотел бы добавить те значения, которые удовлетворяли критериям, в пустой список, чтобы получить
results=[('130','90','150','123','133','120','160'),
('55','34','120','180','130','10')]
я знаю, что я преобразовал все строки в целые числа с помощью int (), но это не та часть, с которой у меня возникают проблемы. У меня возникли проблемы с поиском 4 из размера окна 6, которые> = 100, добавив их в список, И затем иду от того места, где я остановился в окне
В алгоритме Чу Фасмана каждый размер окна равен 6, и если 4 больше 100, то все 6 включаются, и его значение увеличивается до 4 последовательных значений (вместо этого я собираюсь сделать 3) менее 100 (эти 4 ( или 3) не включены), а затем окно начинается снова с того места, создавая новый список.
поэтому первое окно будет:
['130','90','150','123','133,'120'] #and more than 4 are greater than
# 100 so that starting point is stored and the next window is checked
['90','150','123','133','120','160'] #again there are 4 greater than
# 100 so the next window is checked
['150','123','133','120','160','45'] #again
['123','133','120','160','45','67'] #again
['133','120','160','45','67','55'] #stop and assign values '130' to '160'
# into a list and then start the new window from where it left off
Results=[('130','90','150','123','133','120','160')]
['120','160','45','67','55','34'] # skips
['160','45','67','55','34','130'] # skips
['45','67','55','34','130','120'] # skips
['67','55','34','130','120','180'] # skips
['55','34','130','120','180','130'] # new list in Results starts with '55'
['34','130','120','180','130','10'] # sequence ends and this window still
# fits criteria so include these into the list so the results would now be
Results=[('130','90','150','123','133','120','160'),
('55','34','130','120','180','130','10')]
Я бы очень хотел использовать циклы For и по возможности избегать выходов и генераторов, но если это единственный способ, пусть будет так