Добрый день! Согласна, что ответ не 142.
все слова с сочетанием гост
178 {'гостиницы', 'угостить,', 'гостям.', 'гостю.', 'тягостных', 'гостиная', 'тягостный,', 'гостиную', 'гостях', 'гостю', 'гостем', 'гостей-мужчин,', 'гостей,', 'гостей.', 'гостиниц!', 'гости', 'гостинице,', 'гостили', 'гость?', 'гостиница...', 'гостья.', 'гостиной', 'гостя,', 'гостя', 'гостям', 'тягостное', 'гостя.', 'гостю,', 'гость,', 'гостях!', 'гостиную,', 'тягостная', 'гостям,', 'гости...', 'гостиной,', 'гостей', 'гости.', 'угостил...', 'гость', 'гость.', 'гости?', 'гости,', 'благостного'}
слова, не начинающиеся на гост
8 {'угостить,', 'тягостная', 'тягостное', 'тягостных', 'угостил...', 'тягостный,', 'благостного'}
слова, начинающиеся на гост
170 {'гостиницы', 'гостям.', 'гостю.', 'гостиная', 'гостиную', 'гостях', 'гостю', 'гостем', 'гостей-мужчин,', 'гостей,', 'гостей.', 'гостиниц!', 'гости', 'гостинице,', 'гостили', 'гость?', 'гостиница...', 'гостья.', 'гостиной', 'гостя,', 'гостя', 'гостям', 'гостя.', 'гостю,', 'гость,', 'гостях!', 'гостиную,', 'гостям,', 'гости...', 'гостиной,', 'гостей', 'гости.', 'гость', 'гость.', 'гости?', 'гости,'}
в т.ч. посторонние слова:
14 {'гостинице,', 'гостили', 'гостиная', 'гостиную,', 'гостиницы', 'гостиной', 'гостиница...', 'гостиниц!', 'гостиной,', 'гостиную'}
Итого осталось:
156 {'гостю.', 'гости?', 'гости,', 'гостья.', 'гостям,', 'гостя', 'гость.', 'гостям.', 'гость?', 'гости...', 'гостю', 'гостей', 'гостей-мужчин,', 'гостя.', 'гость', 'гости.', 'гостей.', 'гостя,', 'гостей,', 'гостях', 'гостям', 'гостю,', 'гостях!', 'гостем', 'гость,', 'гости'}
Если убрать слова гостей-мужчин, гостья
148 слов 148 {'гость.', 'гость', 'гости.', 'гостей.', 'гостей,', 'гости', 'гостей', 'гостем', 'гость,', 'гостя,', 'гостю,', 'гости?', 'гостя.', 'гостю.', 'гость?', 'гости,', 'гостя', 'гости...', 'гостю'}
Что еще убрать, непонятно..
c = ' '.join([a for a in open('c:/10.txt').readlines()]).lower().split()
sp = [d for d in c if 'гост' in d ];print(len(sp), set(sp))
b = [d for d in sp if d[0]!='г'];print(len(b), set(b))#
b = [d for d in sp if d[0]=='г']; print(len(b), set(b))
b = [d for d in sp if any(c in d for c in ['гостин', 'гостил'])];print(len(b), (b))
b = [d for d in sp if all(c not in d for c in ['гостил','гостин','гостья','гостях', 'гостей-мужчин']) and d[0]=='г']; print(len(b), set(b))