2015-01-10 139 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