Computer >> Máy Tính >  >> Lập trình >> Python

Làm phẳng danh sách các từ điển đã cho bằng Python

Chúng tôi có một danh sách có các phần tử là từ điển. Chúng tôi cần làm phẳng nó để có được một từ điển duy nhất trong đó tất cả các phần tử danh sách này đều có mặt dưới dạng các cặp khóa-giá trị.

Với cho và cập nhật

Chúng tôi lấy một từ điển trống và thêm các phần tử vào đó bằng cách đọc các phần tử từ danh sách. Việc bổ sung các phần tử được thực hiện bằng cách sử dụng chức năng cập nhật.

Ví dụ

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))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

('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', )

Với giảm

Chúng tôi cũng có thể sử dụng chức năng giảm cùng với chức năng cập nhật để đọc các phần tử từ danh sách và thêm nó vào từ điển trống.

Ví dụ

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))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

('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', )

Với ChainMap

Hàm ChainMap sẽ đọc từng phần tử từ danh sách và tạo một đối tượng tập hợp mới nhưng không phải từ điển.

Ví dụ

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))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

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

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