1

我有以下字典:

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

如果有人知道有效的方法,请帮助我。

4

2 回答 2

1

您可以按空格拆分句子并将结果转换为集合。由于集合是无序的,{'bus', 'good'}并且{'good', 'bus'}将被比较为相等。

于 2019-04-10T13:15:16.567 回答
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}
于 2019-04-10T13:26:59.630 回答