Value Counts + процент от общего

MediumPython
05:00
Лучше работает на десктопе
Pandasvalue_countsпроценты

Дан список статусов заказов.

Для каждого уникального статуса посчитайте:
- количество вхождений (count)
- процент от общего числа (pct, округлить до 1 знака)

Задача основана на вопросах с собеседований в Ozon.

Сигнатура

def value_counts_pct(statuses: list[str]) -> list[dict]:

Примеры

value_counts_pct(["completed","completed","pending","completed","cancelled","pending"])
→ [
    {"status": "completed", "count": 3, "pct": 50.0},
    {"status": "pending", "count": 2, "pct": 33.3},
    {"status": "cancelled", "count": 1, "pct": 16.7}
]

Результат отсортирован по убыванию count, при равенстве — по алфавиту.

Примеры

Пример 1

Вход:
statuses = ["completed","completed","pending","completed","cancelled","pending"]
Выход:[{"status":"completed","count":3,"pct":50},{"status":"pending","count":2,"pct":33.3},{"status":"cancelled","count":1,"pct":16.7}]

Пример 2

Вход:
statuses = ["a","b","a","b","c"]
Выход:[{"status":"a","count":2,"pct":40},{"status":"b","count":2,"pct":40},{"status":"c","count":1,"pct":20}]

Пример 3

Вход:
statuses = ["x","x","x","x"]
Выход:[{"status":"x","count":4,"pct":100}]
Консоль
Нажмите Run или Ctrl+Enter для запуска