0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 13
1

Вывод повторяющихся в строке слов в алфавитном порядке

03.01.2019, 14:50. Показов 3021. Ответов 3

Условие:
Дана строка, в которой могут быть символы латиницы, разделительные знаки.
Вывести повторяющиеся слова без учета регистра (word=Word), слова написанные через дефис считать отдельными словами.

У меня получился такой код:

Python
1
2
3
4
5
6
7
8
def frequent (text):
    text = text.lower()
    word = []
    text = list (text.split())
    for i, x in enumerate (text):
        if text.count(x)>1:
            word.append(x)
    return sorted(word)
Проблемы:
1. Не знаю как убрать сплитом разделительные знаки, чтобы они не влияли на дальнейшую работу кода, и чтобы слова через дефис на выходе были двумя отдельными словами
2. На выходе добавляет в список столько одинаковых слов, сколько их в строке. А мне нужно чтобы выводило одно.

Заранее благодарю всех желающих помочь разобраться!

Добавлено через 28 минут
Убрать разделительные знаки получилось.
А вот с выводом трабл остался.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
def frequent (text):
    text = text.lower()
    text = list (text.split())
    word = []
    puncList = [".", ",", ";", ":", "!", "?", "-"]
    for punc in puncList:
        for item in text:
            text=[item.replace(punc,'') for item in text]
    
    for i, x in enumerate (text):
        if text.count(x)>1:
            word.append(x) 
    return sorted(word)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.01.2019, 14:50
Ответы с готовыми решениями:

Составить в алфавитном порядке список всех слов встречающихся в тексте
Дан файл, содержащий текст на русском языке. Составить в алфавитном порядке список всех слов...

Вывести список строк, отсортированных в алфавитном порядке, за исключением слов, начинающихся на буку ‘x’
Дан список строк. Вернуть и вывести список строк, отсортированных в алфавитном порядке, за...

Вывод слов в алфавитном порядке
Нужна программа, вводишь слова с клавиатуры, программа сортирует их в алфавитном порядке.

Ошибка, удаление слов в строке в алфавитном порядке
Прошу помощи. Задание "Удалить слова в массиве в алфавитном порядке". Не упорядочивать, а удалять в...

3
Просто Лис
Эксперт Python
4408 / 2805 / 929
Регистрация: 17.05.2012
Сообщений: 8,190
Записей в блоге: 9
03.01.2019, 15:08 2
Если сильно не вдаваться в код, то так:
Python
1
return sorted(set(word))
1
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 13
03.01.2019, 15:18  [ТС] 3
Не первый раз уже встречаю эту функцию set.. Как она работает, расскажите, пожалуйста

Добавлено через 3 минуты
В итоге вышло так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def frequent (text):
    text = text.lower()
    text = text.replace ('-', ' ')
    text = list (text.split())
    word = []
    puncList = [".", ",", ";", ":", "!", "?"]
    for punc in puncList:
        for item in text:
            text=[item.replace(punc,'') for item in text]
    
    for i, x in enumerate (text):
        if text.count(x)>1:
            word.append(x) 
    return sorted(set(word))
0
Просто Лис
Эксперт Python
4408 / 2805 / 929
Регистрация: 17.05.2012
Сообщений: 8,190
Записей в блоге: 9
04.01.2019, 13:43 4
set — это такой тип данных. Неупорядоченное множество, в котором содержатся неповторяющиеся объекты. https://pythonworld.ru/tipy-da... enset.html
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.01.2019, 13:43

Размещение слов в выходной строке в алфавитном порядке
Всем здравствуйте. Не могу решить первую лабу по дисциплине "Информатика и программирование ч.2"...

Вывод слов заданного текста в алфавитном порядке
Здраствуйте! Помогите пожалуйста составить программу для вывода всех слов заданного текста в...

Построчный вывод на экран слов в обратном алфавитном порядке
Здраствуйте! Я уже весь издымился, стёр клавиатуру, но не смог ничего найти в интернете и ничего не...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.