@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]
Подскажите пжлст, почему не работает?
  • Вопрос задан
  • 774 просмотра
Решения вопроса 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)

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

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

Войти через центр авторизации
Похожие вопросы