Python 3:
我有一个单词列表。我想创建一个dict,其中包含列表中的唯一单词作为键,其频率作为值。另外,我想从列表中删除任何其他单词的子串。
例如:
list = ['goon ', 'goonk ', 'goon ', 'goonj ', 'w ', 'wo ', 'wor ', 'world ', 'world ']
字典应该是:
dict = {'goonj': 1, 'world': 2, 'goonk':1}
我尝试了以下方法,但我没有得到所需的词典。
方法1:如果key的子字符串列表为空,那么我将该键添加到dict。
for keyword in list:
if not [key for key in list if keyword in key and key != keyword]:
if keyword in KeywordDict:
KeywordDict[keyword] += 1
else:
KeywordDict[keyword] = 1
方法2:将单词添加到dict并从dict中删除它的所有子串键。
if keyword in KeywordDict:
KeywordDict[keyword] += 1
else:
KeywordDict[keyword] = 1
for key in KeywordDict:
if keyword.startswith(key) > -1:
KeywordDict.pop(key)
我尝试了上述方法的其他微小变体,但列表仍然包含子字符串。
实际列表大约有300个单词。
我也尝试使用列表理解和字典理解与同样的错误。
我做错了什么?有人可以提出另一种方法吗?