#python #list
Вопрос:
Я пытаюсь создать цикл, который будет искать строку для определенного слова, которое появляется несколько раз, а затем печатать следующие 12 символов, которые появятся после этого.
Я нашел расположение индекса каждого повторяющегося слова, используя приведенный ниже код.
a = [m.start() for m in re.finditer("username", str(Searchable_String))]
print("index Locations:", a)
Что дает мне результат в списке, как показано ниже.
index Locations: [61, 216, 371, 526, 681, 836]
Теперь я пытаюсь распечатать строку из каждого расположения индекса в списке, но не могу этого понять.
Я новичок в python и полностью застрял на этом этапе.
Спасибо
Ответ №1:
for i in a:
print(your_string_var[i:i 12])
Как это работает:
string = "my explanation"
>>> print(string[0:2])
my
>>> print(string[0:1])
m
>>> print(string[0:2])
my
>>> print(string[2:])
explanation
На практике вы можете разрезать строку, используя эти шаблоны :
string[start:end]
или
string[start:end:step]
: Получить все символы от начала до конца-1 скидка на каждый символ шага
Поэтому , если у вас есть начальные позиции в списке, и вы хотите напечатать 12 символов после каждой позиции, которую вы можете зациклить в своем списке позиций, используйте позицию в качестве начала среза и позицию 12 в качестве конца среза.
Комментарии:
1. Объяснение того, как работает опубликованный код, поможет OP
2. Это сработало фантастически. Намного лучше, чем мой предыдущий метод повторения кода! Спасибо.
Ответ №2:
Как вы знаете, на самом деле вы создаете список python, а списки имеют индексы
Таким образом, вы можете написать код, подобный этому:
for index in a:
print(Searchable_String[index:])
который найдет индекс этого символа и с этого момента выведет остальную часть строки.
Если вы хотите, вы также можете указать конечную точку для нарезки строк.
Термин
Searchable_String[index:]
означает, что начните с индекса eg = 61 и распечатайте все дальше.