2016-05-13 8 views
0

Структура данных для реализации обратной функциональности словаря. Это более одной ключевой карты для общего значения с использованием Python. Если разбор предложения, например, «План был хорошим и хорошо выполненным», поэтому я хочу, чтобы группа слов {«хорошая», «хорошо»} сопоставлялась с одним объектом {«possitivity»}. Использование PythonСтруктура данных для реализации обратной функциональности словаря

+1

Что вы имеете в виду обратной функциональности здесь? Потому что в словаре вы можете сделать что-то вроде этого: '{'good': 'positive', 'well': 'positivity'}' или с кортежем как ключ: '{('good', 'well') : 'positivity'} ' – AKS

+0

Я пробовал словарь, сохраняя tupple как ключ, но он не работает до тех пор, пока все совпадения не совпадут. Пример: wordpower = {(« best »,« up »,« awesome »,« fantastic », «лучше», «отлично», «хорошо»): «possitive»}, но не получает желаемого результата. Пока все слова в масти не совпадают, значение не отображается. –

+0

Тогда вы можете использовать первый подход в моих комментариях? Или это тоже неприменимо? – AKS

ответ

0

Во избежание повторения вы можете инициализировать первичный словарь с помощью кортежей, как это предлагается в комментариях, а затем «перевернуть» его в другой словарь, прежде чем использовать его. Как следует:

wordpower = { 
     "positive": ("best" , "up" , "awesome" , "fantastic" , "happy" , "better" , "wonderful" , "good"), 
     "negative": ("worst" , "down" , "terrible" , "horrible" , "sad" , "worse" , "dreadful" , "bad") 
     } 
reverse = {} 
for k, v in wordpower.iteritems(): 
    for word in v: 
     reverse[word] = k 
pprint(reverse) 

Это напечатает следующее:

{'awesome': 'positive', 
'bad': 'negative', 
'best': 'positive', 
'better': 'positive', 
'down': 'negative', 
'dreadful': 'negative', 
'fantastic': 'positive', 
'good': 'positive', 
'happy': 'positive', 
'horrible': 'negative', 
'sad': 'negative', 
'terrible': 'negative', 
'up': 'positive', 
'wonderful': 'positive', 
'worse': 'negative', 
'worst': 'negative'} 
+0

Спасибо, я думаю, он должен работать –

+0

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

+0

@SagarRajSingh Не то, что я знаю. Вы могли бы добавить свои значения в список и ссылаться на индекс в этом списке в словаре вместо прямого значения. – emh