首页 > 解决方案 > 尝试使用键作为所有可能的长度来制作单词字典

问题描述

我对python编程有非常初级的知识。我正在做这个小挑战,我需要使用所有可能的单词长度作为键,并将所有该长度的单词作为值来制作一个单词字典。

例如,它应该看起来像这样:

{2:[不,是,作为,......]}

我有这个代码,我得到一个指向此代码第二个单元格第 4 行的 keyerror。我正在使用 jupyter 笔记本,所以我已经尽我所能通过使用下面的下划线来显示不同的单元格。

def bigword(wordclean):
    return [max(len(word) for word in wordclean)]

listwords = {}
x = bigword(wordclean)[0]
for i in range (1 , x + 1):
   listwords[i].append([word for word in wordclean if len(word)== i])

我理解它所指的键不存在是一种错误,这意味着它不能附加到不存在的键上。我将如何解决这个问题?我需要使用集合中的 dict 还是有办法解决这个错误?

标签: python

解决方案


问题是您试图附加到一个不存在的键。使用defaultdict. 就像是

from collections import defaultdict
result = defaultdict(list)

for word in words:
   result[len(word)].append(word)

推荐阅读