这里是 python 的超级新手,我已经为这段代码苦苦挣扎了一段时间。基本上,该函数返回一个以整数作为键的字典,值是所有单词,其中单词的长度与每个键相对应。
到目前为止,我能够创建一个字典,其中的值是每个单词的总数,而不是实际单词本身。
所以传递以下文本
"the faith that he had had had had an affect on his life"
到函数
def get_word_len_dict(text):
result_dict = {'1':0, '2':0, '3':0, '4':0, '5':0, '6' :0}
for word in text.split():
if str(len(word)) in result_dict:
result_dict[str(len(word))] += 1
return result_dict
回报
1 - 0
2 - 3
3 - 6
4 - 2
5 - 1
6 - 1
我需要输出的地方:
2 - ['an', 'he', 'on']
3 - ['had', 'his', 'the']
4 - ['life', 'that']
5 - ['faith']
6 - ['affect']
我想我需要将值作为列表返回。但我不确定如何处理它。
原文由 Brian 发布,翻译遵循 CC BY-SA 4.0 许可协议
您的代码正在计算每个单词长度的出现次数 - 但不存储单词本身。
除了将每个单词捕获到具有相同大小的单词列表之外,您似乎还想要:
集合容器非常适合积累单词 - 集合自然会消除添加到其中的任何重复项。
使用 defaultdict(sets) 将设置一个空的集合字典——只有在检查每个单词的循环中引用字典键时才会创建字典键。
在您的示例字符串中
像这样调用函数:
返回以下列表:
字典中每个值的类型都是“列表”。