Python FOR 遍历字典

Python FOR loop through dictionary

我正在尝试遍历包含字典的列表。

词典定义:{'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)
...

inputs 是发送的列表,包含字典。 但是我收到错误:

list indices must be integers, not str

for 循环需要从字典中取出 "value" 的内容,以便与下面的 if 语句进行比较。 谁能帮我解释为什么会出现此错误?

谢谢

inputs["value"] 表示 "get the thing at dictionary key "value" in inputs".

你想要"get the thing at dictionary key "value" for each dictionary contained in inputs":

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

你写的方式,看起来像是这样声明的:

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 当迭代进入它们的键时。