🔎 Как найти повторяющиеся слова в строке 🐍 питон?

Есть несколько способов найти повторяющиеся слова в строке с использованием Python.

1. Использование словаря


text = "Пример пример строки для поиска повторяющихся слов слов"
words = text.split()
word_count = {}
for word in words:
    if word in word_count:
        word_count[word] += 1
    else:
        word_count[word] = 1

repeated_words = [word for word, count in word_count.items() if count > 1]
print("Повторяющиеся слова:", repeated_words)

В этом примере мы разбиваем строку на слова, используя метод split(). Затем мы проходим по каждому слову и увеличиваем соответствующее значение в словаре word_count. В конце мы находим повторяющиеся слова, проверяя значение счетчика для каждого слова.

2. Использование множества


text = "Пример пример строки для поиска повторяющихся слов слов"
words = text.split()
unique_words = set()
repeated_words = set()

for word in words:
    if word in unique_words:
        repeated_words.add(word)
    else:
        unique_words.add(word)

print("Повторяющиеся слова:", repeated_words)

Здесь мы также разбиваем строку на слова и проходим по каждому слову. Мы используем два множества - unique_words для отслеживания уникальных слов и repeated_words для отслеживания повторяющихся слов. Если слово уже находится в unique_words, мы добавляем его в repeated_words.

3. Использование регулярных выражений


import re

text = "Пример пример строки для поиска повторяющихся слов слов"
repeated_words = re.findall(r"\b(\w+)\b.*\b\1\b", text, re.IGNORECASE)

print("Повторяющиеся слова:", repeated_words)

В этом примере мы используем модуль re для поиска повторяющихся слов с помощью регулярных выражений. Мы ищем слова, которые повторяются после пробела или знака пунктуации в строке.

Детальный ответ

Как найти повторяющиеся слова в строке питон

В этой статье мы рассмотрим, как найти повторяющиеся слова в строке с использованием Python. Мы покажем несколько способов решения этой задачи, чтобы вы могли выбрать наиболее подходящий вариант для своего проекта.

Метод split() и словарь

Первый метод, который мы рассмотрим, основывается на использовании метода split() и словаря. Мы преобразуем строку в список слов, а затем создадим словарь, где ключ - это каждое слово, а значение - это количество повторений этого слова в строке.

Вот как это выглядит в коде:


    def find_duplicate_words(sentence):
        words = sentence.split()  # Разделить строку на слова
        word_count = {}  # Создать словарь для подсчета повторений

        for word in words:
            if word in word_count:
                word_count[word] += 1  # Увеличить счетчик повторений слова
            else:
                word_count[word] = 1  # Добавить слово в словарь

        duplicate_words = []

        for word, count in word_count.items():
            if count > 1:
                duplicate_words.append(word)

        return duplicate_words

    sentence = "Это тестовая строка, содержащая повторяющиеся слова. Тестовая строка!"
    duplicates = find_duplicate_words(sentence)
    print(duplicates)  # ['тестовая', 'строка']
    

В этом примере мы создали функцию find_duplicate_words, которая принимает строку в качестве аргумента. Далее мы разделили строку на список слов с помощью метода split().

Затем мы создали пустой словарь word_count для подсчета повторений слов. Мы проходимся по каждому слову в списке words и проверяем, есть ли оно уже в словаре. Если слово уже есть, мы увеличиваем его счетчик повторений на 1, иначе добавляем его в словарь со значением 1.

Затем мы создаем пустой список duplicate_words и проходимся по каждому ключу и значению в словаре word_count. Если значение больше 1, мы добавляем это слово в список duplicate_words.

В конце функции мы возвращаем список duplicate_words, который содержит все повторяющиеся слова в исходной строке.

Метод Counter из модуля collections

Второй метод, который мы рассмотрим, использует модуль collections и его класс Counter для подсчета повторяющихся слов в строке.

Вот как это выглядит в коде:


    from collections import Counter

    def find_duplicate_words(sentence):
        words = sentence.split()  # Разделить строку на слова
        word_count = Counter(words)  # Создать счетчик повторений слов

        duplicate_words = []

        for word, count in word_count.items():
            if count > 1:
                duplicate_words.append(word)

        return duplicate_words

    sentence = "Это тестовая строка, содержащая повторяющиеся слова. Тестовая строка!"
    duplicates = find_duplicate_words(sentence)
    print(duplicates)  # ['тестовая', 'строка']
    

В этом примере мы использовали класс Counter из модуля collections для создания счетчика повторений слов в списке words. Затем мы проходимся по каждому ключу и значению в счетчике и добавляем повторяющиеся слова в список duplicate_words.

Использование регулярных выражений

Третий метод, который мы рассмотрим, основан на использовании регулярных выражений. Мы будем использовать модуль re, чтобы найти все повторяющиеся слова в строке.

Вот как это выглядит в коде:


    import re

    def find_duplicate_words(sentence):
        words = re.findall(r'\b(\w+)\b', sentence)  # Найти все слова в строке
        word_count = {}  # Создать словарь для подсчета повторений

        for word in words:
            if word in word_count:
                word_count[word] += 1  # Увеличить счетчик повторений слова
            else:
                word_count[word] = 1  # Добавить слово в словарь

        duplicate_words = []

        for word, count in word_count.items():
            if count > 1:
                duplicate_words.append(word)

        return duplicate_words

    sentence = "Это тестовая строка, содержащая повторяющиеся слова. Тестовая строка!"
    duplicates = find_duplicate_words(sentence)
    print(duplicates)  # ['тестовая', 'строка']
    

В этом примере мы использовали функцию findall из модуля re для нахождения всех слов в строке с помощью регулярного выражения \b(\w+)\b. Затем мы последовательно проверяем каждое слово, аналогично предыдущим методам, чтобы найти повторяющиеся слова и вернуть их в виде списка duplicate_words.

Заключение

Мы рассмотрели несколько способов найти повторяющиеся слова в строке с использованием Python. Вы можете выбрать тот метод, который лучше всего подходит для вашего проекта. Все представленные методы достаточно эффективны и могут быть полезны при разработке программ, работающих со строками.

Видео по теме

Курс Python 3 | Счетчик повторяющихся слов

Программирование на Python - 54 - Подсчет повторяющихся слов в тексте

Уроки Python / Как найти символ в строке

Похожие статьи:

🔧 Как поменять версию Python в терминале: пошаговое руководство

🔍 Как узнать расположение файла Python 3: простые способы и подсказки

Как посчитать строки в Python: простой способ с примерами кода 🔢🐍

🔎 Как найти повторяющиеся слова в строке 🐍 питон?

⚡️Как правильно выполнить 6 задание ЕГЭ по информатике на питоне?

Как правильно сложить все элементы массива Python? 🧩🔢

🔄 Что такое Repeat в Питоне? Узнайте о повторении в языке программирования Python