【问题标题】:Appending multiple values to a key in a dictionary将多个值附加到字典中的键
【发布时间】:2014-04-22 01:50:09
【问题描述】:
lst 是一个字符串列表。
我不断收到错误消息,说追加不适用于字符串类型。 word_dict[len(word)] 是一个字符串是有道理的,但我不确定如何将多个值附加到同一个键。
for word in lst:
if len(word) == int(wordLength):
if len(word) in word_dict:
word_dict[len(word)] = word_dict[len(word)].append(word)
else:
word_dict[len(word)] = word
print word_dict
【问题讨论】:
标签:
python
dictionary
append
【解决方案1】:
使值成为单词列表。 collections.defaultdict(list) 可以自动完成:
word_dict = collections.defaultdict(list)
...
# Whether the key has anything associated with it or not
word_dict[whatever].append(word)
【解决方案2】:
String 类没有 append 函数,这就是为什么你有一个 here。
在此处查看字符串函数:http://docs.python.org/2/library/string.html
要附加字符串,请使用 +
string1 = "hi my name is: "
string2 = "ryan miller"
print string1 + string2
合并列表时使用追加。
所以而不是:
word_dict[len(word)] = word_dict[len(word)].append(word)
用途:
word_dict[len(word)] = word_dict[len(word)] + word
【解决方案3】:
您在这里遇到的唯一问题是您将值设置为字符串,即“单词”。该错误是因为您无法在字符串中附加元素,因此您唯一要做的就是确保将值设置为列表。您可以将元素附加到列表中。
对于 lst 中的单词:
如果 len(word) == int(wordLength):
if len(word) in word_dict:
word_dict[len(word)] = word_dict[len(word)].append(word)
else:
word_dict[len(word)] = [word]
打印 word_dict