построить словарь для ключа поиска по значению

словарь обычно хорош для поиска значения по ключу, но найти ключ по значению довольно медленно

for k,v in dictionary.items(): if v = myValue: return k 

существует ли уже структура данных, которые делают как ключ-> значение, так и ke

  • __init __ () принимает ровно 2 аргумента (1 задано)?
  • У PyCharm есть автозаполнение пути файла?
  • Использовать ** kwargs как при вызове функции, так и при определении
  • Praw «не удалось проанализировать CPython sys.version» при создании объекта Reddit
  • Почему эта строка всегда является наивысшим номером
  • Python сортирует список словарей несколькими ключами
  • Пример аутентификации между сервером и сервером с использованием OAuth 2.0 с API Google API
  • Распаковка аргументов ключевого слова, но только те, которые соответствуют функции
  • 3 Solutions collect form web for “построить словарь для ключа поиска по значению”

    Вы можете попробовать bidict :

     >>> husbands2wives = bidict({'john': 'jackie'}) >>> husbands2wives['john'] # the forward mapping is just like with dict 'jackie' >>> husbands2wives[:'jackie'] # use slice for the inverse mapping 'john' 

    Просто создайте инвертированное отображение:

     from collections import defaultdict inverted = defaultdict(list) for k, v in dictionary.iteritems(): inverted[v].append(k) 

    Обратите внимание, что приведенный выше код обрабатывает повторяющиеся значения; inverted[v] возвращает список ключей, которые удерживают это значение.

    Если ваши значения также уникальны, вместо defaultdict можно использовать простой dict:

     inverted = { v: k for k, v in dictionary.iteritems() } 

    или, в python 3, где items() – это словарь:

     inverted = { v: k for k, v in dictionary.items() } 

    Python 3:

     revdict = {v:k for k,v in dictionary.items()} 

    ( .iteritems() этого Python 2 использует .iteritems() )

    Python - лучший язык программирования в мире.