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

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

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

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

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() )

Interesting Posts

Распространение программ Python

Явный эквивалент Python's struct.pack?

Python: поиск нескольких корней нелинейного уравнения

Почему pandas read_csv не читает правильное количество строк?

Невозможно десериализовать RDD с различным количеством элементов в паре

Как настроить токенизатор предложения NLTK

развертывание кик-бота в герою не работает

Рамка роботов: использование фейкера для создания префиксной строки для данных учетной записи

Как выполнять вложенные, иерархические пассивные многопроцессорные карты?

Как украсить JSON на Python или через командную строку

Перезапись скрипта pymc для оценки параметров в динамических системах в pymc3

Почему использование локаторов потоков в Django плохо?

Проверьте, является ли параметр модулем Python?

Регулярное выражение Python, которое соответствует номерам с плавающей запятой

Как узнать собственные векторы, соответствующие конкретному собственному значению матрицы?

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