python 리스트, 딕셔너리 접근 질문
조회수 469회
x = {'a': ['aaa', 'bbb'], 'b': ['aaa', 'ccc'], 'c': ['bbb', 'ccc']}
y = []
for i in x['a']:
if i in x['c']:
y.append(i)
print(y)
이렇게 작성할 경우, ['bbb']만 출력되어 나오는데 저는 ['bbb']가 속해있는 'a'와 'c'를 같이 출력하고 싶습니다. 예를들어 'a', 'c' : ['bbb'] 이렇게 말입니다.
그리고 for문에서 딕셔너리 x 중에서 하나의 키값인 'a'에 대해서만 확인을 했는데 x를 넣어서 모두 확인하고 싶은데 어떤 방법을 써서 모두 비교하여 표현 할 수 있나요?
(cobinations 을 사용하여 2개의 조합 3개를 만들었는데 value에 접근하지 못해 실패했었습니다.)
조언 부탁드립니다. 감사합니다.
원하는 출력값
'aaa' : 'a', 'b'
'bbb' : 'a', 'c'
'ccc' : 'b', 'c'
1 답변
-
>>> x = {'a': ['aaa', 'bbb'], 'b': ['aaa', 'ccc'], 'c': ['bbb', 'ccc']} >>> all_val = set(x['a']) | set(x['b']) | set(x['c']) >>> all_val {'aaa', 'ccc', 'bbb'} >>> for e in sorted(all_val): ks = [ k for k, v in x.items() if e in v ] if ks: print('%s : %s'%(e, ', '.join(ks))) aaa : a, b bbb : a, c ccc : b, c
댓글 입력