我正在学习Python,我有一个这样的字典:
category = { "World news": [0], "Politics": [0], ... }
现在我正在阅读文件中的文章。每篇文章都有一个类别。所以我希望当一个类别遇到时,我必须将每个键增加1,并且每个键都对它找到的文章增加数组。所以输出将是:
category = { "World news": [2, "foo bla content of", "content of 2nd article"],
"Politics": [1, "only 1 article here"],
...
}
以下是我现在所拥有的:
for row in iter_reader:
category[row[4]][0] = category[row[4]][0] + 1
category[row[4]].append(category[row[3]])
但我认为它将文章解释为关键并引发相关错误:
文件“./wordCloud.py”,第41行,in 类别[行[4]]。追加(类别[行[3]]) KeyError:'Apple于2010年1月推出它时。
有什么想法吗?
row[4]
是该文章的类别。
row[3]
是文章的内容。
正如布莱恩·奥克利所说,我不需要保留一个柜台,所以我现在正朝这个方向思考......
答案 0 :(得分:2)
在第三行中,您要将category[row[3]]
追加到row[3]
附加的位置。您当前正在使用row[3]
作为类别列表的索引,但我怀疑row[3]
实际上是您要附加的内容。
答案 1 :(得分:2)
假设您将每篇文章都存储在字典中,其中键是内容,值是类别。您可以使用类似下面的代码:
categories = {"news" : [0],
"politics" : [0]}
articles = {"content1" : "news",
"content2" : "politics"}
for key, value in articles.items():
for keyDic, valDict in categories.items():
if (value == keyDic):
valDict[0] += 1
valDict.append(key)
continue