Задать вопрос
@Taler_Du

Сортировка списка по количеству повторений?

Задача:
def frequency_sort(items):
    b=sorted(items,key=items.count,reverse = True)
    return b


frequency_sort([4, 6, 2, 2, 6, 4, 4, 4])
>>> [4, 4, 4, 4, 6, 2, 2, 6]
Подскажите пжлст, почему не работает?
  • Вопрос задан
  • 883 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
Не работает потому, что и 6 и 2 — по две. Из-за этого неопределённость среди них.
С неравными количествами этого не возникает:
>>> frequency_sort([4, 6, 2, 2, 6, 4, 2, 4, 4])
[4, 4, 4, 4, 2, 2, 2, 6, 6]

spoiler

Починить можно добавив само значение к ключу сортировки:
def frequency_sort(items):
    return sorted(items, key=lambda v: (items.count(v), v), reverse = True)

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы