我有以下意见:
{'time pickup': 8, 'pickup drop': 7, 'bus good': 5, 'good bus': 5, 'best service': 4, 'rest stop': 4, 'comfortable journey': 4, 'good service': 4, 'everything good': 3, 'staff behaviour': 3, ...}
您可以看到索引2和3中的每个词都相同,我需要删除其中一个,建议删除无意义的词。
我将句子反转,稍后我将通过检查两个匹配项来删除一个。 但是,如果再输入多个单词,其复杂性可能会很高。
def remDups(s):
words = s.split(' ')
string =[]
for word in words:
string.insert(0, word)
print("Reversed String:")
return (" ".join(string)).strip()
如果有人知道有效的方法,请帮助我。
答案 0 :(得分:1)
您可以按空格分隔句子并将结果转换为一组。由于集合是无序的,因此{'bus', 'good'}
和{'good', 'bus'}
的比较将相等。
答案 1 :(得分:1)
您可以对单词进行排序,并利用字典本身来确保没有重复
代码
def remDeps(s):
return {" ".join(sorted(key.split(" "))):s[key] for key in s}
示例用法
a = {'time pickup': 8, 'pickup drop': 7, 'bus good': 5, 'good bus': 5, 'best service': 4, 'rest stop': 4, 'comfortable journey': 4, 'good service': 4, 'everything good': 3, 'staff behaviour': 3}
remDeps(a)
输出
{'pickup time': 8,
'drop pickup': 7,
'bus good': 5,
'best service': 4,
'rest stop': 4,
'comfortable journey': 4,
'good service': 4,
'everything good': 3,
'behaviour staff': 3}