Так что это странная проблема, которую я подозреваю, очень просто решить. Я создаю лирику webapp для удаленных игроков в моем доме. В настоящее время он создает словарь игроков с песней, которую они играют. Например:Слияние ключей словаря, если значения одинаковы
{
'bathroom': <Song: Blur - Song 2>,
'bedroom1': <Song: Blur - Song 2>,
'kitchen': <Song: Meat Loaf - I'd Do Anything for Love (But I Won't Do That)>,
}
Иногда подмножества этих игроков синхронизируются. Так что - выше - они отображают одно и то же значение. Я хотел бы сгруппировать их в интерфейсе. Я могу быть более умным, когда я создаю словарь, но если я не буду этого делать, есть ли хороший способ объединить ключи по значению?
Нужный выход из выше будет, что-то вроде:
{
'bathroom,bedroom1': <Song: Blur - Song 2>,
'kitchen': <Song: Meat Loaf - I'd Do Anything for Love (But I Won't Do That)>,
}
Однако это делает перерыв, как я хотел бы посмотреть вещи (я хотел бы указать на имя, следовательно, это словарь) ... Есть ли лучшая коллекция, которая может иметь несколько ключей на каждое значение и указывать, когда есть объединенные дубликаты (и назад - все ключи)?
Существует хороший ответ, который переворачивает это вокруг ключа песен и список игроков в качестве значения. Это замечательно, за исключением того, что иногда я хочу знать, какая песня играет на имени игрока. Вот почему я изначально пошел со словарем.
Есть ли хороший способ сохранить поиск в обоих направлениях (не дожидаясь сохранения обеих коллекций)?
Почему бы не обратить вспять структуру? поскольку песни уникальны, это могут быть ключи здесь? – Cyrbil
^Точно :) Проблемы с низким уровнем ошибок – Cyrbil
Извините. Я думал, что неправильно истолковал вопрос, поэтому я удалил, пока я обновил свой ответ, но он вернулся. –