Как добавить только новую пару ключей из одного словаря в другой в Python? - PullRequest
2 голосов
/ 29 февраля 2020

У меня есть 2 словаря:

Rorys_guests = {"Adam": 2, "Brenda": 3, "David": 1, "Jose": 3, "Charlotte": 2, "Terry": 1, "Robert": 4}

Taylors_guests = {"David": 4, "Nancy": 1, "Robert": 2, "Adam": 1, "Samantha": 3, "Chris": 5}

Я хочу проверить, является ли ключ (только ключ) в Taylors_gasts уже есть в Rorys_ghest. Если нет, я хочу добавить пару ключ и значение из Taylors в Rorys.

Примечание: некоторые ключи одинаковы в обоих словарях. Я не хочу перезаписывать значения в Rorys_ghest. Я только хочу добавить ключи и значения из диктата Тейлорса, которых еще нет в диктате Рориса.

for i in Taylors_guests:
    print(i)
    if i in Rorys_guests:
        print("yes")
    else:
        Rorys_guests = Rorys_guests.get(i)

print(Rorys_guests)

Я - нуб python, но все равно просмотрел много разных сайтов и не смог найти решение.

Заранее спасибо!

Ответы [ 4 ]

2 голосов
/ 29 февраля 2020
Rorys_guests = {**Rorys_guests, **Taylors_guests}
# {'Adam': 2, 'Brenda': 3, 'David': 1, 'Jose': 3, 'Charlotte': 2, 'Terry': 1, 'Robert': 4, 'Nancy': 1, 'Samantha': 3, 'Chris': 5}

Демо

1 голос
/ 29 февраля 2020

Вы можете попробовать это:

Rorys_guests = {"Adam": 2, "Brenda": 3, "David": 1, "Jose": 3, "Charlotte": 2, "Terry": 1, "Robert": 4}
Taylors_guests = {"David": 4, "Nancy": 1, "Robert": 2, "Adam": 1, "Samantha": 3, "Chris": 5}

for key, value in Taylors_guests.items():
    if key not in Rorys_guests:
        Rorys_guests[key] = value
print(Rorys_guests)
1 голос
/ 29 февраля 2020

Вы можете сделать это в одну строку следующим образом:

Rorys_guests = {"Adam": 2, "Brenda": 3, "David": 1, "Jose": 3, "Charlotte": 2, "Terry": 1, "Robert": 4}
Taylors_guests = {"David": 4, "Nancy": 1, "Robert": 2, "Adam": 1, "Samantha": 3, "Chris": 5}

Rorys_guests.update({k:v for k,v in Taylors_guests.items() if k not in Rorys_guests.keys()})
print(Rorys_guests)

>>> {'Adam': 2, 'Brenda': 3, 'David': 1, 'Jose': 3, 'Charlotte': 2, 'Terry': 1, 'Robert': 4, 'Nancy': 1, 'Samantha': 3, 'Chris': 5}
1 голос
/ 29 февраля 2020

Я считаю, что вы очень близки, но я думаю, что это должно сделать это:

Rorys_guests = {"Adam": 2, "Brenda": 3, "David": 1, "Jose": 3, "Charlotte": 2, 
"Terry": 1, "Robert": 4}

Taylors_guests = {"David": 4, "Nancy": 1, "Robert": 2, "Adam": 1, "Samantha": 
3, "Chris": 5}

for k,v in Taylors_guests.items():
   if k not in Rorys_guests.keys():
      Rorys_guests[k] = Taylors_guests[k]
print(Rorys_guests)

Вывод:

{'Adam': 2, 'Brenda': 3, 'David': 1, 'Jose': 3, 'Charlotte': 2, 'Terry': 1, 'Robert': 4, 'Nancy': 1, 'Samantha': 3, 'Chris': 5}
...