Здравствуйте!
В первом примере происходит поверхностное копирование словаря:
s = {"str": "1", "list": [1, 2], "dict": {"first": "test1"}}
f = s.copy()
f['second'] = '3'
f['dict']['third'] = '3'
print(s)
Подскажите, пожалуйста, почему во втором примере происходит глубокое копирование?
users = {"+1111111": "Tom","+3333333": "Bob","+5555555": "Alice"}
users2 = {"+2222222": "Sam","+6666666": "Kate"}
users.update(users2)
print(users) # {"+1111111": "Tom", "+3333333": "Bob", "+5555555": "Alice", "+2222222": "Sam", "+6666666": "Kate"}
print(users2) # {"+2222222": "Sam", "+6666666": "Kate"}
users3 = users.copy()
print(users3)
users["+5555555"]=True
print(users)
print(users2)
print(users3)