我有一个我从谷歌学者那里得到的一系列词汇,看起来像这样,
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这样的一些条款我不能提前对不起哦,列表已被分类两次并删除重复你也知道。
答案 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