Структура данных для реализации обратной функциональности словаря. Это более одной ключевой карты для общего значения с использованием Python. Если разбор предложения, например, «План был хорошим и хорошо выполненным», поэтому я хочу, чтобы группа слов {«хорошая», «хорошо»} сопоставлялась с одним объектом {«possitivity»}. Использование PythonСтруктура данных для реализации обратной функциональности словаря
ответ
Во избежание повторения вы можете инициализировать первичный словарь с помощью кортежей, как это предлагается в комментариях, а затем «перевернуть» его в другой словарь, прежде чем использовать его. Как следует:
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'}
Спасибо, я думаю, он должен работать –
, но есть ли способ сопоставить разные ключи с одним значением, используя другую структуру данных, отличную от словаря –
@SagarRajSingh Не то, что я знаю. Вы могли бы добавить свои значения в список и ссылаться на индекс в этом списке в словаре вместо прямого значения. – emh
Что вы имеете в виду обратной функциональности здесь? Потому что в словаре вы можете сделать что-то вроде этого: '{'good': 'positive', 'well': 'positivity'}' или с кортежем как ключ: '{('good', 'well') : 'positivity'} ' – AKS
Я пробовал словарь, сохраняя tupple как ключ, но он не работает до тех пор, пока все совпадения не совпадут. Пример: wordpower = {(« best »,« up »,« awesome »,« fantastic », «лучше», «отлично», «хорошо»): «possitive»}, но не получает желаемого результата. Пока все слова в масти не совпадают, значение не отображается. –
Тогда вы можете использовать первый подход в моих комментариях? Или это тоже неприменимо? – AKS