2011-10-06 2 views
-2

Если у меня есть словарь, который выглядит как:Печать данных в словарь в Python

{'first': [ 
    {'red': ['six', 'three', 'seven', 'six']}, 
    {'green': ['eight', 'three', 'four']} 
], 
'second': [ 
    {'blue': ['one', 'five', 'three']} 
] 
} 

Как я могу добраться до определенных точек в словаре? Например, как я могу распечатать второй «шестерку» в «первом» заголовке под заголовком «красный»?

+0

Вы имеете в виду * второй * "шесть"? –

+0

да, извините. я имел в виду четвертую позицию. – user728166

+0

'dict_name ['first'] [0] ['red'] [3]'? Это то, что вы имели ввиду? – agf

ответ

2

Предполагая, что ваш словарь называется d вы могли бы сделать это:

print(d['first'][0]['red'][3]) 
  • Выражение d['first'] дает значение, связанное с ключом 'first'. Значение - это список.
  • [0] дает вам первый элемент в списке (кстати, почему у вас есть список, содержащий только один элемент?). Обратите внимание, что индексирование основано на 0 на Python.
  • Тогда у вас есть еще один словарь, значения которого снова перечислены. ['red'] извлекает значение из этого словаря.
  • [3] обращается к четвертому элементу в списке.
+0

Я просто собрал быстрый пример. Как правило, мои списки имеют более одного элемента. Спасибо за ваш ответ. Я знал, что это должно быть что-то простое. – user728166

1

print mydict["first"][0]["red"][3] напечатает элемент 3 (четвертый элемент, поскольку элемент 0 является первым элементом). В этом случае он должен дать вам six.

Кроме того, у вас есть list, содержащийся в dict, содержащемся в пределах list, содержащемся в другом dict. Числовой индекс 3 получает доступ к части этого внутреннего list и не является тем, что обычно полезно для dict.

1

Для того, вы спросили:

>>> a = {'first': [{'red': ['six', 'three', 'seven', 'six']}, {'green': ['eight', 'three', 'four']}], 'second': [{'blue': ['one', 'five', 'three']}]} 
>>> a['first'][0]['red'][3] 
'six' 
Смежные вопросы