2015-01-10 7 views
-1

Я пытаюсь перебрать список, содержащий словари.Python FOR цикл через словарь

словарное определение: {'id' : y, 'value' : (data["value"])}

У меня есть цикл, как, например:

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) 
... 

входов список, который посылается в, содержащий словари. Однако я получаю ошибку:

список индексов должны быть целыми, не ул

для цикла необходимо, чтобы вытащить содержимое «значение» в словаре, чтобы сравнить его с если заявления ниже. Может ли кто-нибудь помочь, почему я получаю эту ошибку?

Спасибо

+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] 

Как Dictionaries в Python, когда итерация входит в их ключи.

+0

Нет, ошибка здесь в том, что 'input [" value "]' ожидает целочисленный поиск, т. Е. 'Type (input) == list' – Eric

Смежные вопросы