当试图在嵌套的collection.defaultdict
下更新我的字典时,Python给了我一个错误
说
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "program.py", line 18, in train_ngrams
if graphemes[i] not in mydict[phonemes[i]].keys():
AttributeError: 'str' object has no attribute 'keys'
我的代码:
^{pr2}$好的是,当我迭代csv文件时,我正在尝试更新字典。这里我首先要检查它是否已经在defaultdict
中。如果没有,那么我希望创建一个键和值对。在
而defaultdict
中的值将在以后实际用于实现一个嵌套的标准字典,它存储一些频率信息。在
下面是一个例子:
defaultdict(<class 'dict'>, {'T': {'t': 2}, 'UH': {'oo': 1}})
处理这个错误的简明方法是什么?注意,defaultdict
在这一部分中是必需的。在
编辑:
train_ngrams("training-data-ex1.csv")
期望的输出应该是
defaultdict(<class 'dict'>, {'T': {'t': 2}, 'UH': {'oo': 1}})
编辑:
示例txt文件
phonemes,graphemes
T UH T,t oo t
{如果你不想让一对元素^使用双循环。在
这使用了一个
defaultdict
的defaultdict
,所以结果看起来有点奇怪,但它本质上正是您想要的:defaultdict(<function <lambda> at 0x7fd297740840>, {'T': defaultdict(<class 'int'>, {'t': 2}), 'UH': defaultdict(<class 'int'>, {'oo': 1})})
,或者,没有所有的defaultdict
样板文件,{'T': {'t': 2}, 'UH': {'oo': 1}}
。在相关问题 更多 >
编程相关推荐