파이썬 딕셔너리 key, value 값 얻기 질문있습니다.
조회수 995회
input_value = {AAA': {'aaa1': ['a1', 'b1', 'c1'], 'aaa2': ['a2', 'b2', 'c2']}, 'BBB': {'bbb1': ['b1','b2']}}
target1 = input_value.keys()
# dict_keys(['AAA', 'BBB'])
target2 = input_value.values()
# dict_values([{'aaa1': ['a1', 'b1', 'c1'], 'aaa2': ['a2', 'b2', 'c2']}, {'bbb1': ['b1', 'B2']}])
## 원하는 결과.
## result = {'AAA':['aaa1','aaa2']}
키 AAA의 values의 중간 키 값인 aaa1, aaa2 만 뽑아 오고 싶은데, (위에 result 처럼) 방법이 있을까요?
제가 시도한 방법은 target2에서 key 값 뽑아서(aaa1,aaa2) 이 값을 value로 바꾸려하는데, target2 값이 dict_values 값이기 떄문에 key로 쓸수 없다고 나와 key선정을 하지 못했습니다.
도움을 주시면 감사하겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
//여기에 코드를 입력하세요 input_value = {'AAA': {'aaa1': ['a1', 'b1', 'c1'], 'aaa2': ['a2', 'b2', 'c2']}, 'BBB': {'bbb1': ['b1','b2']}} // 상위 키들을 리스트로 생성 key_list = list(input_value.keys()) result = dict() for i in range(len(key_list)): value = input_value.get(key_list[i]) // 상위 키의 value 얻기 second_key_list = list(value.keys()) // 하위 키들을 리스트로 생성 result[key_list[i]] = second_key_list // 결과 dict 형태로 생성 print('result : ', result)
직관적으로 코드를 생성한 것이니 의도에 맞게 생각해서 수정 하시기 바래요
-
(•́ ✖ •̀)
알 수 없는 사용자
-
-
>>> o, *_ = input_value.items() # 관심있는 것은 제일 첫 요소 o = input_value.get(0) 해도 됩니다. >>> {o[0]:list(o[1].keys())} # o는 튜플이고 key, value 순이다. {'AAA': ['aaa1', 'aaa2']}
- 답변 감사합니다! 알 수 없는 사용자 2019.9.27 15:47
- 아..한가지 주의할 것은 python 3.6 이상부터 dict 순서가 보장됩니다. 정영훈 2019.9.27 16:04
댓글 입력