Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 주어진 사전 목록 병합

<시간/>

요소가 사전인 목록이 있습니다. 이러한 모든 목록 요소가 키-값 쌍으로 존재하는 단일 사전을 얻으려면 평면화해야 합니다.

for 및 업데이트 사용

빈 사전을 가져와 목록에서 요소를 읽어 요소를 추가합니다. 요소의 추가는 업데이트 기능을 사용하여 수행됩니다.

listA = [{'Mon':2}, {'Tue':11}, {'Wed':3}]
# printing given arrays
print("Given array:\n",listA)
print("Type of Object:\n",type(listA))
res = {}
for x in listA:
   res.update(x)
# Result
print("Flattened object:\n ", res)
print("Type of flattened Object:\n",type(res))

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

('Given array:\n', [{'Mon': 2}, {'Tue': 11}, {'Wed': 3}])
('Type of Object:\n', )
('Flattened object:\n ', {'Wed': 3, 'Mon': 2, 'Tue': 11})
('Type of flattened Object:\n', )

감소 사용

또한 업데이트 기능과 함께 reduce 기능을 사용하여 목록에서 요소를 읽고 빈 사전에 추가할 수 있습니다.

from functools import reduce
listA = [{'Mon':2}, {'Tue':11}, {'Wed':3}]
# printing given arrays
print("Given array:\n",listA)
print("Type of Object:\n",type(listA))
# Using reduce and update
res = reduce(lambda d, src: d.update(src) or d, listA, {})
# Result
print("Flattened object:\n ", res)
print("Type of flattened Object:\n",type(res))

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

('Given array:\n', [{'Mon': 2}, {'Tue': 11}, {'Wed': 3}])
('Type of Object:\n', )
('Flattened object:\n ', {'Wed': 3, 'Mon': 2, 'Tue': 11})
('Type of flattened Object:\n', )

ChainMap 사용

ChainMap 함수는 목록에서 각 요소를 읽고 사전이 아닌 새 컬렉션 개체를 만듭니다.

from collections import ChainMap
listA = [{'Mon':2}, {'Tue':11}, {'Wed':3}]
# printing given arrays
print("Given array:\n",listA)
print("Type of Object:\n",type(listA))
# Using reduce and update
res = ChainMap(*listA)
# Result
print("Flattened object:\n ", res)
print("Type of flattened Object:\n",type(res))

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Given array:
[{'Mon': 2}, {'Tue': 11}, {'Wed': 3}]
Type of Object:

Flattened object:
ChainMap({'Mon': 2}, {'Tue': 11}, {'Wed': 3})
Type of flattened Object: