Как удалить все строки в списке после того, как строка найдена - PullRequest
0 голосов
/ 21 июня 2019

Если у меня есть список:

my_list = ['hey', 'how are', 'you', 'Bob', 'Jim']

, и я хочу удалить все элементы из списка, следующие:

if 'Bob' in my_list:
    print(my_list)

Так, чтобы вывод был:

my_list = ['hey', 'how are', 'you']

который удаляет ['Bob', 'Jim']

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Неясно, хотите ли вы просто не отображать (печатать) после того, как строка найдена, или фактически удалить все из списка.

Вот как вы можете выполнять каждую операцию:

my_list = ['hey', 'how are', 'you', 'Bob', 'Jim']

# Output strings up to 'Bob'.
try:
    stop = my_list.index('Bob')
except ValueError:
    stop = len(my_list)
print(my_list[:stop])


# Remove strings from 'Bob' onward.
try:
    del my_list[my_list.index('Bob'):]
except ValueError:
    pass
print(my_list)
0 голосов
/ 21 июня 2019

Вы можете попробовать это:

my_list = ['hey', 'how are', 'you', 'Bob', 'Jim']

if 'Bob' in my_list:
    bob_index = my_list.index("Bob")  #Get index of Bob
    my_list[bob_index:len(my_list)] = [] #Remove everything from Bob onwards
    print(my_list)

Выход:

['hey', 'how are', 'you']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...