2016-05-13 64 views
0

实现字典反向功能的数据结构,这是使用Python实现一个通用值的关键映射。例如,如果解析一个句子 - “该计划很好并且执行得很好”,所以我希望将一组单词{“good”,“well”}映射到一个实体{“possitivity”}。使用Python实现字典反向功能的数据结构

+1

你说的这里反向的功能是什么意思?因为在字典中你可以做这样的事情:'{'good':'positive','well':'positive'},或者以一个元组作为关键字:'{('good','well') :'positivity'}' – AKS

+0

我已经试过字典保持tupple作为一个关键,但它不工作,直到所有tupple匹配。例子= wordpower = {(“最好”,“上”,“真棒”,“奇妙”快乐的“,”更好的“,”最好的“,”美妙的“,”好的“):”正面的“},但没有得到期望的结果。直到tupple中的所有单词都匹配,值才被显示。 –

+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