以下代码:
for j in reversed(range(0,15)):
print i
successors = g.successors(totuple(total_nodes[j,:]))
array = [0,0,0,0]
a=0
i = i+1
for succ in successors:
print g.node[succ]
array[a]=g.node[succ]
a+=1
print array
print sum(item['key'] for item in array)
产生以下输出:
1
{'key': 0.0}
{'key': 0.39730768970355257}
{}
{'key': 0.0}
[{'key': 0.0}, {'key': 0.39730768970355257}, {}, {'key': 0.0}]
基于我尝试过的其他问题:
print sum(item['key'] for item in array)
产生:
KeyError:'key'
print sum([i for i in array.values()])
产生:
AttributeError:'list'对象没有属性'values'
答案 0 :(得分:3)
尝试将最后一行更改为此以避免关键错误:
sum(item['key'] for item in array if 'key' in item)
答案 1 :(得分:2)
如果找不到sum(item.get('key', 0)) for item in array)
,您可以使用会0
的{{1}}
答案 2 :(得分:0)
你的一些节点是列表或整数 - 这就是为什么,不是dicts,它们没有values()
方法,也不能用字符串键索引。
至于为什么你的数据是这样的,我们不能告诉你除非你给我们更多的背景(比如,g
是什么?successors()
做什么?totuple()
?什么你试图解决的实际问题是什么?)。