我在python中有一个简单的字典,我想迭代所有项目来打印密钥和值:
myDictionary = {"0" :0, "1":0, "2":0, "3":0, "4":0, "5":0, "6":12, "7":0,"8":0,"9":0,"10":0,"11":0, "12":0,"13":12}
def count(self, myDictionary):
for k, v in myDictionary.items():
print k,v
Python将myDictionary视为:
{'11': 0, '10': 0, '13': 12, '12': 0, '1': 0, '0': 0, '3': 0, '2': 0, '5': 0, '4': 0, '7': 0, '6': 12, '9': 0, '8': 0}
虽然打印出键和值,但只打印11 0
。我也试过iteritems()。为什么只打印字典中的第一个元素?我有python 2.3,如果这有所作为。
答案 0 :(得分:0)
我假设(根据评论)这段代码不属于字典类,而是一个方法,所以我删除了self
(用于调用其他变量或方法)该类本身)并看到以下代码返回了您想要的结果(运行python 2.7.3):
>>>def count(myDictionary):
for k,v in myDictionary.items():
print k,v
>>>count(myDictionary)
11 0
10 0
13 12
12 0
1 0
0 0
3 0
2 0
5 0
4 0
7 0
6 12
9 0
8 0
>>>
当您使用一个字典(self
)调用方法时,这支持更新为2.7x并删除myDictionary
的需要,否则它将需要两个参数。
如果您需要将数据存储在可以实现的类结构中,但我只建议您使用比您发布的数据结构更复杂的数据结构,例如每个键具有多个属性的键控字典我想分开打电话。如:
dictionary = {v1: 0, 8, 9, v2: 9,6,3}
其中v1
和v2
表示您想要单独调用x,y和z方向的3D矢量,而不必遍历所有数据。