#python #dictionary
#python #словарь
Вопрос:
У меня есть несколько функций, определенных для настройки некоторых словарей и упорядочивания вещей. Что я пытаюсь сделать сейчас, так это использовать вложенный словарь в качестве параметра функции для другой функции.
K итак, у меня есть этот введенный формат:
list = {'123': {'Name': 'foo', 'Responses': {'Q4': 'a', 'Q1': 'a', 'Q2': 'b', 'Q3': 'c'}, 'ID': '123'}, '234': {'Name': 'bar', 'Responses': {'Q4': 'b', 'Q1': 'a', 'Q2': 'b', 'Q3': 'c'}, 'ID': '234'}, '345': {'Name': 'xyzzy', 'Responses': {'Q4': 'b', 'Q1': 'a', 'Q2': 'a', 'Q3': 'c'}, 'ID': '345'}}
Мне нужно получить доступ к ключу ‘Responses’, чтобы функция могла использовать ключи Q1, Q2 и т.д. И сравнивать с другим dictionart. И мне нужно сделать это для каждых 123, 234, 345 ключей.
Тогда не так важно, мне нужно сопоставить key key для значений, которые выдает функция, и обновить список, но я могу разобраться с этим, как только я запущу эту функцию.
Я пытался использовать list.get(‘Responses’) в качестве параметра, но он не возвращает None, поэтому я не совсем уверен, куда идти дальше.
Ответ №1:
.get()
Параметр ищет ключи верхнего уровня. На самом деле вы, вероятно, хотите перечислить словари подуровня:
for key, sub_dict in toplevel_dict.items():
responses = sub_dict['Responses']
# do something with responses here; responses is a dict
Ответ №2:
Вы можете сделать следующее, используя понимание списка :
l = [dic['Responses'] for _, dic in list.items()]
# You get a list of all your dictionaries
Ответ №3:
Вам нужно будет использовать цикл for с элементами iter для извлечения информации.
for key, value in list.iteritems():
print value['Responses']