如何获得整数dicts列表的总和

时间:2013-07-16 10:45:55

标签: python

我有一个我从谷歌学者那里得到的一系列词汇,看起来像这样,

WRT_Citations = {Citations: 201, year: 2008, Title: Something, Author: Authors, Url: Url} {Citations: 108, year: 2006, Title: Something, Author: Authors, Url: Url}{Citations: 100, year: 2009, Title: Something, Author: Authors, Url: Url}

我把它放在这个for循环中以使它更有序。

    for Citations in Wrt_Citations:
        print "Print Citations ", Citations

给出了一个更有序的列表,

 output = {Citations: 201, year: 2008, Title: Something, Author: Authors, Url: Url}
{Citations: 108, year: 2006, Title: Something, Author: Authors, Url: Url} 
{Citations: 100, year: 2009, Title: Something, Author: Authors, Url: Url}

我想获得总引用次数,即201 + 108 + 100 = 409.我已经能够单独获得引文,

Cites = dict.values(Citations)[0]
print cites = 201
              108
              100

所以我尝试使用sum(dict.values(Citations)[0])来获取总引用但只给出TypeError:'int'对象不可迭代。

任何帮助都很乐意除外,过去几周我一直在教我的自我,通过tril和错误python这样的一些条款我不能提前对不起哦,列表已被分类两次并删除重复你也知道。

2 个答案:

答案 0 :(得分:2)

使用生成器表达式遍历所有引文词典:

sum(d['Citations'] for d in WRT_Citations)

请注意,使用dict.values(Citations)[0]是一种非常全面的说法Citations.values()[0],这是一种不正确且不可靠的说Citations['Citations']的方式(访问与{{1}相关联的值密钥在名称'Citations')引用的字典中。

答案 1 :(得分:2)

您的代码结构和语法是非常错误的,但假设它们是正确的(如下所示),那么您就可以按照自己的意愿行事:

WRT_Citations = [
    {'Citations': 201, 'year': 2008, 'Title': 'Something', 'Author': 'Authors', 'Url': 'Url'},
    {'Citations': 108, 'year': 2006, 'Title': 'Something', 'Author': 'Authors', 'Url': 'Url'},
    {'Citations': 100, 'year': 2009, 'Title': 'Something', 'Author': 'Authors', 'Url': 'Url'}]

total_citations = sum(d['Citations'] for d in WRT_Citations)
# 409