@novicheck

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

Имеется dict состоящий из пар ключ: строка в юникоде, значение: целое число(int). Можно ли узнать (вывести) у скольких ключей значения совпадают? Пример:
{u'DC963983-0B06-47D4-8E09-9D12C98FEEE4': 3, u'DC963983-0B06-47D4-8E09-9D12C98FEEE4': 3, u'D2AEE06F-B0BF-41E9-8646-93F7B852F357': 6}
и должно получится нечто вроде {3:2, 6:1}
  • Вопрос задан
  • 5538 просмотров
Решения вопроса 1
@fireSparrow
from collections import Counter

dct = {
        u'DC963983-0B06-47D4-8E09-9D12C98FEEE4': 3,
        u'DC963983-0B06-47D4-8E09-9D12C98FEEE4': 3,
        u'D2AEE06F-B0BF-41E9-8646-93F7B852F357': 6
    }

values = dct.values()
counter = Counter(values)

print(dict(counter))


UPD: Кстати, в вашем словаре из примера первый ключ повторяется дважды. Так делать нельзя, в словаре все ключи должны быть уникальны - иначе питон просто перезапишет первое значение вторым, и в словаре вместо этих двух элементов останется один. Поэтому для вашего примера мой скрипт выведет не то решение, которого вы ожидаете.
На корректном словаре с уникальными ключами мой скрипт будет работать правильно.

Если вам нужно, чтобы можно было использовать одинаковые ключи для разных элементов, то вам стоит использовать не словарь, а другую структуру данных. Например, список кортежей.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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