python(简单)附加到字典错误

时间:2015-08-08 20:33:16

标签: python dictionary

我正在尝试循环翻译单词列表以制作字典,使用第一个单词作为键,将前进单词作为值(如谷歌的基本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 但没有成功。我确定我的错误很简单,但我已经花了很多年的时间。任何帮助将不胜感激!

2 个答案:

答案 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

相关问题