2016-10-23 4 views
-1

사전을 설정하고 정리하는 몇 가지 기능이 있습니다. 내가 지금하려는 것은 중첩 된 사전을 다른 함수의 함수 매개 변수로 사용하는 것입니다. 나는 기능 등, 키를 Q1, Q2를 사용하고 다른 dictionart 비교할 수 있도록 '응답'키에 액세스 할 필요가사전 내에서 사전 내의 키에 액세스하기

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'}} 

:

K 그래서이 입력 형식을 가지고있다. 각 123, 234, 345 키에 대해이 작업을 수행해야합니다. 그다지 중요한 것은 함수가 제공하고 목록을 업데이트하는 값에 대한 키 키를 매핑해야하지만 일단이 함수가 실행되면 그 값을 계산할 수 있습니다.

나는 list.get ('Responses')를 매개 변수로 사용해 보았지만 아무 것도 반환하지 않으므로 여기서 어디로 가야할 지 잘 모르겠습니다.

답변

0

.get() 매개 변수는 최상위 레벨 키를 찾습니다. 당신이 실제로 아마 원하는 것은 하위 수준의 사전을 통해 나열하는 것입니다

for key, sub_dict in toplevel_dict.items(): 
    responses = sub_dict['Responses'] 
    # do something with responses here; responses is a dict 
0
지능형리스트 사용하여 다음과 같이 할 수

:

l = [dic['Responses'] for _, dic in list.items()] 
# You get a list of all your dictionaries 
0

당신은에 iteritems와 루프를 사용해야합니다을 정보를 꺼내.

for key, value in list.iteritems(): 
    print value['Responses']