string — Поиск количества символов между двумя словами в тексте на Python
Как найти ближайшее расстояние между двумя словами в тексте или в большой коллекции текстовых файлов.
Например, я хочу найти ближайшее расстояние между двумя словами, такими как «is» и «are» в тексте. Вот что у меня есть:
text = "есть ли способ найти ближайшее расстояние двух слов - like is и are - друг от друга."
def dis_words_text (текст, слово1, слово2):
импортировать numpy как np
ind1 = текст. найти (слово1)
ind2 = текст. найти (слово2)
dis = "хотя бы одно из слов не в тексте" if -1 in (ind1,ind2) else np.abs(ind1-ind2)
возврат (дис)
dis_words_text (текст, «есть», «есть»)
Выход: 25
dis_words_text (текст, «почему», «есть»)
Вывод: "хотя бы одно из слов не в тексте"
Похоже, приведенный выше код учитывает расстояние между первыми «есть» и «есть», а не ближайшее расстояние, которое должно составлять 7 символов. См. также Поиск позиции слова в строке и Как найти индекс точного слова в строке в Python в качестве ссылок.
- python
- строка
- поиск
- текст
- расстояние
5
Вот решение для поиска ближайшего расстояния между двумя словами в тексте на основе количества символов:
def Nearest_Values_twolist(list1,list2):
г1 = список1[0]
г2 = список2[0]
мин_значение = 1000000
для строки1 в списке1:
для строки2 в списке2:
т = абс (строка1 - строка2)
если t Test:
text = "есть ли способ найти ближайшее расстояние между двумя словами - like is и are - друг от друга.
"
самое близкое_расстояние_слов (текст, w1, w2)
Выход: 7
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Python — получить количество символов, слов, пробелов и строк в файле
Улучшить статью
Сохранить статью
- Уровень сложности:
Easy
- Последнее обновление:
08 сент, 2022
Прочитать Обсудить Улучшить статью
Сохранить статью
Предварительное условие: Обработка файлов в Python
Для заданного текстового файла fname задача состоит в том, чтобы подсчитать общее количество символов, слов, пробелов и строк в файле.
Как мы знаем, Python предоставляет множество встроенных функций и модулей для работы с файлами. Давайте обсудим различные способы подсчета общего количества символов, слов, пробелов и строк в файле с помощью Python. Получить количество символов, слов, пробелов и строк в файле
Наивный подход к получению количества символов, слов, пробелов и строк в файле В этом подходе идея состоит в том, чтобы решить задачу путем разработки наша собственная логика. Без использования какой-либо встроенной функции Python будет подсчитано общее количество символов, слов, пробелов и строк файла. Ниже приведена реализация описанного выше подхода.
Питон3
def counter(fname):
num_words = 0
num_lines = 0
NUM_CHARC = 0
num_spaces = 0
with open ( fname, 'r' ) as f:
for line in f:
num_lines + = 1
word = 'Y'
for письмо в строка:
if (letter ! = ' ' and word = = 'Y' ):
0103
num_words + = 1
word = 'N '
elif (letter = = ' ' ):
num_spaces + = 1
word = 'Y'
for i in letter:
if (я ! = "" и i ! = "\n" ):
num_charc + = 1
печать ( "Number of words in text file: " ,
num_words)
print ( "Number of lines in Файл текста: « ,
num_lines)
.
0103 ( 'Number of characters in text file: ' ,
num_charc)
print ( 'Number of spaces in Текстовый файл: ' ,
NUM_SPACES)
IF __NAME__ = __ NAME__ = __MAME__ = 0102 = '__main__' :
fname = 'File1.
txt'
try :
counter(fname)
except :
print ( 'File not found' )
Output:
Количество слов в текстовом файле: 25
Количество строк в текстовом файле: 4
Количество символов в текстовом файле: 91
Количество пробелов в текстовом файле: 21
Использование некоторых встроенных функций и функций модуля ОС В этом подходе идея состоит в том, чтобы использовать метод os.linesep() модуля ОС для разделения строк в текущем Платформа. Когда сканер интерпретатора встречает os.linesep, он заменяет его символом \n.
После этого для выполнения задачи будут использоваться функции strip() и split(). Получите больше информации о функциях strip() и split(). Ниже приведена реализация описанного выше подхода.
Python3
import os
def counter(fname):
num_words = 0
num_lines = 0
= 0
.
0102
num_charc = 0
num_spaces = 0
с открыть (fname, 'r' ) as f:
for line in f:
Линия = line.
strip(os.linesep)
wordslist = line.split()
num_lines = num_lines + 1
num_words = num_words + len (wordslist)
num_charc = num_charc + сумма ( 1 для c in line
if c not in (os.
linesep, ' ' ))
num_spaces = num_spaces + sum ( 1 for s in line
if s in (os.linesep, ' ' ))
Печать ( "Количество в текстовом файле:" ( ".
0102 ,
num_words)
print ( "Number of lines in text file: " ,
num_lines)
печать ( символов в текстовом файле0103 ,
num_charc)
print ( "Number of spaces in text file: " ,
num_spaces )
IF __NAME__ = = '__main__' :
:
03 fname = 'File1.
"
самое близкое_расстояние_слов (текст, w1, w2)

0103
txt'
После этого для выполнения задачи будут использоваться функции strip() и split(). Получите больше информации о функциях strip() и split(). Ниже приведена реализация описанного выше подхода.
0102
strip(os.linesep)
linesep,
0102 , 