Есть еще один способ использования argument unpacking
newone = {**orig}
Который вы также можете добавить новые переменные в эту строку:
newone = {**orig, 'newval': 'test'}
Но из моих простых тестов copy
способ кажется самым быстрым:
from timeit import timeit
orig = {'pid': 12345, 'name': 'steven king', 'country': 'usa', 'sex': 'M', 'company': 'MS'}
def f1():
newone = orig.copy()
newone['newval'] = 'test'
def f2():
newone = {}
newone['pid'] = 12345
newone['name'] = 'steven king',
newone['country']= 'usa'
newone['sex'] = 'M'
newone['company'] = 'MS'
newone['newval'] = 'test'
def f3():
newone = {**orig, 'newval': 'test'}
print(timeit(f1))
print(timeit(f2))
print(timeit(f3))
Результаты:
1.4525865920004435
1.858240751986159
1.4954008519998752
Попробуйте здесь: https://repl.it/repls/NeglectedOrneryBash