Как сравнивать значения ключей в словаре? Нужно для задачки.

MaksosRAG

Новичок
Пользователь
Фев 24, 2023
2
0
1
Задачка:
Измени функцию подсчёта слов так, чтобы она возвращала список кортежей, где первый элемент — число раз, которое слово встречается в тексте, а второй — само слово. Затем добавь код, который на основе возвращённого значения выведет пять слов, которые встречаются в тексте чаще всего.
С первой частью задачи я разобрался. У меня получилось вот это:

Python:
def litters(text: str) -> dict:
 
  slovar = {}
  pravilo = text.maketrans('', '', ',.!?*+-/№#-"')
  text = text.translate(pravilo)
  text = text.lower()

  for word in text.split():
    slovar[word] = slovar.get(word, 0) + 1
  return slovar
 
x = litters(str(input()))
print(x)

Не могу додуматься, что делать дальше. Я не прошу решать её за меня, просто подскажите, что можно использовать.
 
Последнее редактирование:

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
Измени функцию подсчёта слов так, чтобы она возвращала список кортежей,
а вы словарь делаете...
 

MaksosRAG

Новичок
Пользователь
Фев 24, 2023
2
0
1
а вы словарь делаете...
Понял. Если сделать кортеж, то у меня есть идейки. Просто интересно, можно ли сравнивать значение ключей в словаре. Спасибо, чёт я тупанул.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
Понял. Если сделать кортеж, то у меня есть идейки. Просто интересно, можно ли сравнивать значение ключей в словаре. Спасибо, чёт я тупанул.
можно сделать копию словаря и сравнивать
как это сделать в одном словаре, с ходу не могу сказать...
 

robisho

Активный пользователь
Пользователь
Окт 19, 2020
151
26
28
Просто интересно, можно ли сравнивать значение ключей в словаре.
сортировка словаря по значению, а при равном значении - по ключу по алфавиту
results = sorted(slovar.items(), key=lambda item: (-item[1], item[0]))
нужно будет взять 5 первых элементов из results
 

Форум IT Специалистов