在Python中迭代字典

在Python中迭代字典,python,dictionary,Python,Dictionary,我正试图想出一个更好的解决办法,但到目前为止运气不佳。 我有一本字典: dict = {"a":(1,2,3),"b":(4,5,6)} 我需要在一个类中迭代它: class App(object): def __init__(self,x): self.x = x def key(self,key): print key def value1(self,value1): print value1 def v

我正试图想出一个更好的解决办法,但到目前为止运气不佳。 我有一本字典:

dict = {"a":(1,2,3),"b":(4,5,6)}
我需要在一个类中迭代它:

class App(object):
    def __init__(self,x):
        self.x = x

    def key(self,key):
        print key

    def value1(self,value1):
        print value1

    def value2(self,value2):
        print value2

    def value3(self,value3):
        print value3
到目前为止,我有一个解决方案:

app = App(0)
while app.x < len(dict.keys()):
    app.key(dict.keys()[app.x])
    app.value1(dict.values()[app.x][0])
    app.value2(dict.values()[app.x][1])
    app.value3(dict.values()[app.x][2])   
    app.x +=1

我希望避免硬编码,没有[0]、[1]、[2]。如果使用字典很难实现,那么应该使用什么数据类型来获得理想的结果?任何帮助都将不胜感激

最好更改应用程序类,但如果无法更改,则:

app = App(0)
funcs = [app.value1, app.value2, app.value3]
for i, (key, items) in enumerate(d.iteritems()):
    app.x = i
    app.key(key)
    for func, item in zip(funcs, items):
        func(item)

1.最好将value1、value2、value3存储为列表元组,这样问题就解决了。2.这是一个很好的例子,当你不需要类的时候,为什么你不应该使用它。既然你已经有了口述,为什么还要上课呢。您正在多次更新同一应用程序,并将其覆盖。创建一个应用程序数组。你知道你的应用程序值不是更新的,只是打印出来的吗?