2015-01-10 186 views
-1

我想遍歷包含字典的列表。Python FOR循環字典

字典中的定義:{'id' : y, 'value' : (data["value"])}

我有一個for循環中作爲這樣的:

for a in (inputs["value"]): 
    #print (newStack) 
    if a == '+': 
     op1, op2 = newStack.pop(), newStack.pop() 
     newStack.append(op2 + op1) 
    elif a == '-': 
     op1, op2 = newStack.pop(), newStack.pop() 
     newStack.append(op1 - op2) 
... 

輸入是被髮送在含有字典列表。 但是我得到的錯誤:

列表索引必須是整數,for循環需要在字典中拉出來「值」的內容比較它如果不是str的

的聲明下面。 任何人都可以協助爲什麼我得到這個錯誤?

謝謝

+0

這看起來與[this dictionary looping]非常相似(http://stackoverflow.com/questions/1772068/list-in-a-dictionary-looping-in-python?rq=1)的問題。 – 576i

回答

1

inputs["value"]意味着「得到的辭典鍵"value"inputs的事」

你想「得到的東西,在字典中的關鍵"value"包含在inputs每個字典」

for dict_containing_value in inputs: 
    a = dict_containing_value['value'] 
    # rest as before 
-1

你寫的方式,看起來就像是像這樣聲明:

data = {'value': (0,1,2,3)} 
inputs = {'id' : 'y', 'value' : (data["value"])} 

如果是,比你能簡單地重複:

for i in inputs: 
    if i is 'value': 
     print inputs[i] 

由於Python中的Dictionaries迭代進來他們的密鑰。

+0

不,這裏的錯誤是'inputs [「value」]'期待整數查找,即'type(inputs)== list' – Eric