чтение текстового файла и подсчет, сколько раз слово повторяется.Использование функции .split.Теперь хочет, чтобы он игнорировал регистр - PullRequest
0 голосов
/ 18 ноября 2018

Получение желаемого результата до сих пор.

Программа предлагает пользователю выполнить поиск слова.

пользователь вводит его, программа читает файл и выдает результат.

'Эшвин: 2'

Теперь я хочу игнорировать регистр. Например, «Ashwin» и «ashwin» оба должны возвращать 2, поскольку в текстовом файле содержится два кода Ashwin.

def word_count():
    file = "test.txt"
    word = input("Enter word to be searched:")
    k = 0

    with open(file, 'r') as f:
        for line in f:
            words = line.split()
            for i in words:
                if i == word:
                    k = k + 1
    print(word + ": " + str(k))


word_count()

Ответы [ 3 ]

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

Используйте класс Counter из коллекций, который возвращает словарь с парами ключ-значение, к которым можно получить доступ, используя O(1) time.

from collections import Counter

def word_count():
    file = "test.txt"

    with open(file, 'r') as f:
         words = f.read().replace('\n', '').lower().split()
         count = Counter(words)

    word = input("Enter word to be searched:")
    print(word, ":", count.get(word.lower()))
0 голосов
/ 18 ноября 2018

Вы можете использовать .lower в строке и в слове, чтобы исключить регистр. Или вы можете использовать встроенный модуль re.

len (re.findall (word, text, flags = re.IGNORECASE))

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

Вы можете использовать lower () для сравнения строк в этой части if i.lower() == word.lower():

Например:

def word_count():
    file = "test.txt"
    word = input("Enter word to be searched:")
    k = 0

    with open(file, 'r') as f:
        for line in f:
            words = line.split()
            for i in words:
                if i.lower() == word.lower():
                    k = k + 1
    print(word + ": " + str(k))


word_count()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...