2017-12-09 2 views
-1

내가 사전의 목록을 병합하는 프로그램을 쓰고 있어요 "감소": '목록'개체가 어떤 속성 '항목을'이 없습니다 :스트 랭은 python2.7에서 동작

li = [{u'1234': [[1512734546591, 1512734552591]]}, {}, {}, {}] 

reduce(lambda a, b: a.items() + b.items(), [l for l in li]) 

는 다음 오류

AttributeError를 보여줍니다

왜?

+1

'[l for l in]'의 요점은 무엇입니까? – Galen

+0

당신은 단지 키가 아닌 값을 합치고 있습니다 ... http://treyhunner.com/2016/02/how-to-merge-dictionaries-in-python/ –

답변

2

첫 번째 반복에 대해 a.items() + b.items()의 결과를 생각해보십시오. 결과의 유형은 무엇입니까? 그 결과는 lambda으로 a으로 다음 반복에서 전달됩니다.

그것은 list입니다. 다음 반복에서 alist (이전 결과는 a.items() + b.items())이고 bdict이됩니다. 이 시점에서 a.items()은 속성 인 list에 액세스하려고 시도했지만 그 중 하나도 없습니다.

+0

대단히 고마워요! 좋은 대답. [dict, dict, dict]와 같은 dict 목록을 병합하려면 어떻게해야합니까? – sccds

관련 문제