Я не думаю, что это возможно, так как вы можете изменить изменяемый файл при его передаче, чтобы он отражал изменения в глобальной области видимости, но вы не можете изменить то, на что он ссылается.
def f(x):
z = dict()
for i in range(0,len(x),2):
z[x[i]] = x[i+1]
# x = z
x.append(1)
return x
x=[1,2]
z=f(x)
print(z) #[1, 2, 1]
print(x) #[1, 2, 1]
Но
def f(x):
z = dict()
for i in range(0,len(x),2):
z[x[i]] = x[i+1]
x = z
return x
x=[1,2]
z=f(x)
print(z) #{1: 2}
print(x) #[1, 2]
Python позволяет вам изменять глобальную область видимости изменяемых переменных, но вы не можете изменить саму ссылку.