Форум сайта python.su
Доброго, необходимо в массиве из строк найти совпадение заданного слова,
проблема в том что, нужно зафиксировать точное совпадение. В примере, это слово “собак” нужно чтобы программа фиксировала одно вхождение, результат должен быть 0, 0, 0, 1, 0 а получается 1, 0, 0, 1, 1
sum_arr = ['собаки', 'бегут', 'по полю', 'много собак', 'это собаки'] end_arr = [] subs = 'собак' for h in sum_arr: if h.find(subs) == -1: end_arr.append(0) else: end_arr.append(1) print (end_arr)
Отредактировано alesi (Авг. 12, 2019 17:31:46)
Офлайн
можно пойти двумя путями.
1) написать свою функцию которая разбирает предложение по словами и ищет в них точное совпадение с заданным словом.
2) сделать это же регулярными выражениями
Офлайн
Пробовал сделать с помощью “ re.search” , но не могу в переменной ограничить границы слова,
если вот прямо слово в выражение ввести , то да работает if re.search(r'\bсобак\b', h), а переменную как?
Офлайн
alesiровно также
работает if re.search(r'\bсобак\b', h), а переменную как?
if re.search(r'\b{}\b'.format(subs), h)
if re.search(r'\b'+subs+r'\b', h)
if ' ' + subs + ' ' in ' ' + h + ' ':
if f' {subs} ' in f' {h} ':
[code python][/code]
Отредактировано PEHDOM (Авг. 12, 2019 20:04:54)
Офлайн
PEHDOM, да спасибо, все работает
Офлайн