我正在尝试循环翻译单词列表以制作字典,使用第一个单词作为键,将前进单词作为值(如谷歌的基本python练习:https://developers.google.com/edu/python/exercises/basic)。 / p>
我收到错误消息:“AttributeError:'str'对象没有属性'append'”,代码如下:
def mimic_dict(filename):
"""Returns mimic dict mapping each word to list of words which follow it."""
mimic = {}
f = open(filename, 'r')
fulltext = f.read()
splittext = fulltext.split(' ')
for c in range(len(splittext)-1):
if splittext[c] in mimic:
#Error on the next line
mimic[splittext[c]].append(splittext[c+1])
else:
mimic[splittext[c]] = splittext[c+1]
我一直在尝试使用此方法:Appending values to dictionary in Python 但没有成功。我确定我的错误很简单,但我已经花了很多年的时间。任何帮助将不胜感激!
答案 0 :(得分:3)
splittext[c]
是一个字符串,你试图追加它(当然,它失败了)。
您的意思是在最后一行中说mimic[splittext[c]] = [splittext[c+1]]
吗?请注意尖括号,您需要在list
字典中添加mimic
,以便稍后向其添加更多元素。
答案 1 :(得分:1)
您正尝试在.append()
上使用splittext[c]
,c
是列表splittext
的索引.append()
中包含的字符串。您不能在字符串上使用>>> b'\xCC'.decode('utf-16_be', 'surrogateescape').encode('utf-16_be', 'surrogateescape')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'utf-16-be' codec can't encode character '\udccc' in position 0: surrogates not allowed
。