Как найти позицию в списке переменных, поиск по строке [Python] - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть список типа

result = ['Alice in the forest - 01.mp4', 'Code-009 - 02.mp4', 'Art 7 - 01.mp4', 'Will be owned - 05.mp4']

и переменная, подобная этой

search = 'Alice'

Есть ли способ поиска по списку и поиска 'Alice in the forest - 01.mp4' по ключевому слову 'Alice'и сохранить нумерацию переменной в списке?

Ps: до сих пор я пробовал с string=re.compile("Alice").Хотя ничего не распечатал.

Заранее спасибо.

Ответы [ 4 ]

0 голосов
/ 23 ноября 2018
import re
word1='Alice'
result = ['Alice in the forest - 01.mp4', 'Code-009 - 02.mp4', 'Art 7 - 01.mp4', 'Will be owned - 05.mp4']
for i, j in enumerate(result):
    if word1 in j:
        print i

enumerate () возвращает все вхождения индекса "Алисы"

0 голосов
/ 23 ноября 2018

Вам нужно пройтись по списку и выяснить, встречается ли ваше слово для поиска в текущем элементе.

def searchWordInList(input_list, word):
    index_and_value = []
    for i in range(len(input_list)):
        if word in input_list[i]:
            index_and_value .append(i, input_list[i])
    return index_and_value 
result = ['Alice in the forest - 01.mp4', 'Code-009 - 02.mp4', 'Art 7 - 01.mp4', 'Will be owned - 05.mp4']
search = 'Alice'

index_and_value = searchWordInList(result, search)
0 голосов
/ 23 ноября 2018

Вы также можете сделать это, используя функции filter и enumerate:

result = ['Alice in the forest - 01.mp4', 'Code-009 - 02.mp4', 'Art 7 - 01.mp4', 'Will be owned - 05.mp4']
search = 'Alice'
output = list(filter(lambda song: search in song[1], enumerate(result)))
print(output)

Выход:

[(0, 'Alice in the forest - 01.mp4')]
0 голосов
/ 23 ноября 2018

Чтобы получить все строки, содержащие ваш поисковый запрос, вы можете использовать:

match_string = [s for s in result if "Alice" in s]

Чтобы получить позиции всех строк, содержащих ваш поисковый запрос, вы можете использовать:

match_string = [i for i, s in enumerate(result) if "Alice" in s]
...