Уведомления

Группа в Telegram: присоединиться

#1 Авг. 12, 2019 15:44:19

alesi
Зарегистрирован: 2019-07-17
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

поиск слова целиком в предложении

Доброго, необходимо в массиве из строк найти совпадение заданного слова,
проблема в том что, нужно зафиксировать точное совпадение. В примере, это слово “собак” нужно чтобы программа фиксировала одно вхождение, результат должен быть 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)

Офлайн

#2 Авг. 12, 2019 16:42:39

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3279
Репутация: +  220  -
Профиль   Отправить e-mail  

поиск слова целиком в предложении

можно пойти двумя путями.
1) написать свою функцию которая разбирает предложение по словами и ищет в них точное совпадение с заданным словом.
2) сделать это же регулярными выражениями



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Авг. 12, 2019 16:59:53

alesi
Зарегистрирован: 2019-07-17
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

поиск слова целиком в предложении

Пробовал сделать с помощью “ re.search” , но не могу в переменной ограничить границы слова,
если вот прямо слово в выражение ввести , то да работает if re.search(r'\bсобак\b', h), а переменную как?

Офлайн

#4 Авг. 12, 2019 18:36:29

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 1411
Репутация: +  201  -
Профиль   Отправить e-mail  

поиск слова целиком в предложении

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)
а можно без re
 if ' ' + subs + ' ' in ' ' + h + ' ':
если у вас пайтон версии 3.6 и выше то можно это же записать более красиво:
 if f' {subs} ' in f' {h} ':

Отредактировано PEHDOM (Авг. 12, 2019 20:04:54)

Офлайн

#5 Авг. 13, 2019 13:55:12

alesi
Зарегистрирован: 2019-07-17
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

поиск слова целиком в предложении

PEHDOM, да спасибо, все работает

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version