2017-08-09 100 views
0

我想填充此字典,因为我循环,但是当我打印它检查时,它似乎只有被添加到字典中的唯一元素是最后一项循环。如何才能做到这一点?如何使用循环填充Python字典

probabilities = {} 
with tf_Session(graph=graph) as sess: 
results = sess.run(output_operation.outputs[0], 
        {input_operation.outputs[0]:t}) 
results = np.squeeze(results) 

top_k = results.argsort()[-5:][::-1] 
labels = load_labels(label_files) 
for j in top_k: 
    print(labels[j], results[j]) 
    probabilities = {labels[j]:results[j]} 

print (probabilities) 
+1

'概率[标签[J] =结果[J]' – Alexander

回答

4

这不是将元素添加到dict的正确语法。您只是每次重置dict。你可能想

probabilities[labels[j]] = results[j] 

,而不是

probabilities = {labels[j]:results[j]} 
+0

使得很多的意义,现在,谢谢:) – Veejay

2

您在每次迭代在这里创建一个新的字典,

probabilities = {labels[j]:results[j]} 

这应该是

probabilities[labels[j]] = results[j] 
+1

得到它谢谢:) – Veejay

1

这是因为你在每次迭代中创建一个新的字典你的循环。请尝试以下操作:

probabilities = {} 
for j in top_k: 
    print(labels[j], results[j]) 
    probabilities[labels[j]] = results[j]