Как объединить или объединить словарь одних и тех же данных в один

У меня есть приведенный ниже набор из 7 словарей

{'empid':785, 'empname':'Ibrahim', 'date(2022,5,1)':'Unmarked'}
{'empid':785, 'empname':'Ibrahim', 'date(2022,5,2)':'Unmarked'}
{'empid':785, 'empname':'Ibrahim', 'date(2022,5,3)':'Present'}
{'empid':785, 'empname':'Ibrahim', 'date(2022,5,4)':'Unmarked'}
{'empid':785, 'empname':'Ibrahim', 'date(2022,5,5)':'Unmarked'}
{'empid':785, 'empname':'Ibrahim', 'date(2022,5,6)':'Absent'}
{'empid':785, 'empname':'Ibrahim', 'date(2022,5,7)':'Unmarked'}

Я хочу преобразовать в формат ниже.

{'empid':785, 'empname':'Ibrahim', 'date(2022,5,1)':'Unmarked', 'date(2022,5,2)':'Unmarked', 'date(2022,5,3)':'Present', 'date(2022,5,4)':'Unmarked', 'date(2022,5,5)':'Unmarked', 'date(2022,5,6)':'Absent', 'date(2022,5,7)':'Unmarked'}

Как я могу это сделать?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
36
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

def Merge(a,b,c,d,e,f,g):
    res = a | b | c | d | e | f | g
    return res


a = {'empid':785, 'empname':'Ibrahim', 'date(2022,5,1)':'Unmarked'}
b = {'empid':785, 'empname':'Ibrahim', 'date(2022,5,2)':'Unmarked'}
c = {'empid':785, 'empname':'Ibrahim', 'date(2022,5,3)':'present'}
d = {'empid':785, 'empname':'Ibrahim', 'date(2022,5,4)':'Unmarked'}
e = {'empid':785, 'empname':'Ibrahim', 'date(2022,5,5)':'Unmarked'}
f = {'empid':785, 'empname':'Ibrahim', 'date(2022,5,6)':'Absent'}
g = {'empid':785, 'empname':'Ibrahim', 'date(2022,5,7)':'Unmarked'}

result = Merge(a,b,c,d,e,f,g)

Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, редактировать, чтобы добавить дополнительную информацию, например цитаты или документацию, чтобы другие могли подтвердить правильность вашего ответа. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре.

Community 06.05.2022 19:52
Ответ принят как подходящий

Другой метод:

dcts = [
    {"empid": 785, "empname": "Ibrahim", "date(2022,5,1)": "Unmarked"},
    {"empid": 785, "empname": "Ibrahim", "date(2022,5,2)": "Unmarked"},
    {"empid": 785, "empname": "Ibrahim", "date(2022,5,3)": "Present"},
    {"empid": 785, "empname": "Ibrahim", "date(2022,5,4)": "Unmarked"},
    {"empid": 785, "empname": "Ibrahim", "date(2022,5,5)": "Unmarked"},
    {"empid": 785, "empname": "Ibrahim", "date(2022,5,6)": "Absent"},
    {"empid": 785, "empname": "Ibrahim", "date(2022,5,7)": "Unmarked"},
]

out = {k: v for d in dcts for k, v in d.items()}
print(out)

Отпечатки:

{
    "empid": 785,
    "empname": "Ibrahim",
    "date(2022,5,1)": "Unmarked",
    "date(2022,5,2)": "Unmarked",
    "date(2022,5,3)": "Present",
    "date(2022,5,4)": "Unmarked",
    "date(2022,5,5)": "Unmarked",
    "date(2022,5,6)": "Absent",
    "date(2022,5,7)": "Unmarked",
}
from functools import reduce


lst = [{'empid': 785, 'empname': 'Ibrahim', 'date(2022,5,1)': 'Unmarked'},
       {'empid': 785, 'empname': 'Ibrahim', 'date(2022,5,2)': 'Unmarked'},
       {'empid': 785, 'empname': 'Ibrahim', 'date(2022,5,3)': 'Present'},
       {'empid': 785, 'empname': 'Ibrahim', 'date(2022,5,4)': 'Unmarked'},
       {'empid': 785, 'empname': 'Ibrahim', 'date(2022,5,5)': 'Unmarked'},
       {'empid': 785, 'empname': 'Ibrahim', 'date(2022,5,6)': 'Absent'},
       {'empid': 785, 'empname': 'Ibrahim', 'date(2022,5,7)': 'Unmarked'}]

def fun(dct1, dct2):
    res = dct1.copy()
    for key, value in dct2.items():
        if key not in dct1:
            res[key] = value
    return res

reduce(fun, lst)

Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, редактировать, чтобы добавить дополнительную информацию, например цитаты или документацию, чтобы другие могли подтвердить правильность вашего ответа. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре.

Community 06.05.2022 19:54

Другие вопросы по теме