Как урезать список, если условие выполнено - PullRequest
0 голосов
/ 28 мая 2019

У меня есть список значений, и в основном я хочу просмотреть этот список и проверить, есть ли у меня более 20 последовательных значений ниже определенного минимума. Если это правда, я хочу закончить список, где последний номер выше минимального был.

Я попробовал следующее безуспешно:

for j in range(0,len(List)):
    if all(k<minimumthreshold for k in List[j:j+20]):
        List= [e for e in List if e != j]

Ответы [ 2 ]

1 голос
/ 28 мая 2019

Вы должны сделать что-то вроде этого - (Рассмотрите это как псевдокод)

your_list = [.....]
counter = 0
stop_at = 20  #Set it accordingly
minimum = 30  # Set it accordingly
split_at_index = None
for index, list_item in enumerate(your_list):
    if list_item < minimum:
        counter += 1
    else:
        counter = 0
        continue
    if counter == stop_at:
        split_at_index = index
        break
new_list = your_list[:split_at_index]
0 голосов
/ 28 мая 2019
_list = [12,34,41,145,11,43,123,32]
counter = 0
limit = 3
thresold = 50
index = 0
split = 0
for num in _list:
    if num < thresold:
        counter = counter + 1
        print counter
        if counter == limit:
            split = index
            break
    else:
        counter = 0
    index = index + 1

print (_list[:split])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...