字典与不同类型的数组作为Python中的值

时间:2016-01-19 14:29:39

标签: python dictionary

我正在学习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]是文章的内容。

正如布莱恩·奥克利所说,我不需要保留一个柜台,所以我现在正朝这个方向思考......

2 个答案:

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