2016-09-26 2 views
0

나는 동일한 열쇠의 총 dict를 계산하는 방법에 문제가 있습니까? 나는 DICT 있습니다총 가치 dict를 계산하십시오

{'learning': {'DOC1': 0.14054651081081646, 
       'DOC2': 0, 
       'DOC3': 0.4684883693693881}, 
'life':  {'DOC1': 0.14054651081081646, 
       'DOC2': 0.20078072972973776, 
       'DOC3': 0} 
} 

와 나는 같은 결과를 희망 : d이되고 함께 ...

for k in d['learning']: 
    print(d['learning'][k] + d['life'][k]) 

:

{'learning life': { 
     'DOC1': DOC1 in learning + DOC1 in life, 
     'DOC2': DOC2 in learning + DOC2 in life, 
     'DOC3': DOC3 in learning + DOC3 in life,}} 

매우

+0

가능한 중복 둘 다)?] (http://stackoverflow.com/questions/11011756/is-there-any-pythonic-way-to-combine-two-dicts-adding-values-for-keys-that-appe) – Querenker

답변

0

당신은과 같이 사전 d에 중첩 된 모든 번호를 추가하기위한 사전 이해를 사용할 수 있습니다

totals = {k: sum(v.get(k, 0) for v in d.values()) for k in d.values()[0]} # dict of totals 
이 dicts을 (표시 키 값을 추가 결합 할 수있는 파이썬 방법이 있나요 [의
1

매우 간단 해 주셔서 감사합니다 귀하의 dict 및 아무런 오류 검사가 없습니다 (키가 존재합니까? 어, 등). 이해력과


으로 전체 코드 :

d = {'learning': {'DOC1': 0.14054651081081646, 
       'DOC2': 0, 
       'DOC3': 0.4684883693693881}, 
'life':  {'DOC1': 0.14054651081081646, 
       'DOC2': 0.20078072972973776, 
       'DOC3': 0} 
} 

d['sum'] = [d['learning'][k] + d['life'][k] 
      for k in d['learning']] 
print(d) 

a demo on ideone.com를 참조하십시오.

+1

Of 물론, 그것은'학습'에있는 똑같은 열쇠가'인생'에 있다는 것을 의미합니다. 키 값이 다른 경우 '학습'의 키가 '평생'인지 확인해야합니다. 이것은'for key in learning.keys()'와'if key in life.keys()'를 사용하여 수행 할 수 있습니다. –

관련 문제