Skip to content

Instantly share code, notes, and snippets.

@cra
Created November 22, 2015 16:38
Show Gist options
  • Save cra/655d99820a88700b7f38 to your computer and use it in GitHub Desktop.
Save cra/655d99820a88700b7f38 to your computer and use it in GitHub Desktop.
import copy
a = [1, 2, 3]
b = []
c_d = [15, 18, 20]
d_d = []
e_l = [4, 5, 6]
f_l = []
def f():
global a, b, d_d, c_d, e_l, f_l
b = copy.copy(a)
b[0] = 555
d_d = copy.deepcopy(c_d)
d_d[0] = 777
f_l = list(e_l)
f_l[0] = -15
print("[before f] a", a, "b", b)
print("[before f] c_d", c_d, "d_d", d_d)
print("[before f] e_l", e_l, "b", f_l)
f()
print("[after f] a", a, "b", b)
print("[after f] c_d", c_d, "d_d", d_d)
print("[after f] e_l", e_l, "b", f_l)
# ------------------------
a = [[1, 2, 3], 2, 3]
b = []
c_d = [15, [18, 19, 666], 20]
d_d = []
e_l = [4, 5, [6, 758, 456]]
f_l = []
def g():
global a, b, d_d, c_d, e_l, f_l
b = copy.copy(a)
b[0][0] = 555
d_d = copy.deepcopy(c_d)
d_d[1][1] = 777
f_l = list(e_l)
f_l[2][2] = -15
print("[before g] a", a, "b", b)
print("[before g] c_d", c_d, "d_d", d_d)
print("[before g] e_l", e_l, "b", f_l)
g()
print("[after g] a", a, "b", b)
print("[after g] c_d", c_d, "d_d", d_d)
print("[after g] e_l", e_l, "b", f_l)
@cra
Copy link
Author

cra commented Nov 22, 2015

In [9]: edit f
Editing... done. Executing edited code...
[before f] a [1, 2, 3] b []
[before f] c_d [15, 18, 20] d_d []
[before f] e_l [4, 5, 6] b []
[after f] a [1, 2, 3] b [555, 2, 3]
[after f] c_d [15, 18, 20] d_d [777, 18, 20]
[after f] e_l [4, 5, 6] b [-15, 5, 6]
[before g] a [[1, 2, 3], 2, 3] b []
[before g] c_d [15, [18, 19, 666], 20] d_d []
[before g] e_l [4, 5, [6, 758, 456]] b []
[after g] a [[555, 2, 3], 2, 3] b [[555, 2, 3], 2, 3]
[after g] c_d [15, [18, 19, 666], 20] d_d [15, [18, 777, 666], 20]
[after g] e_l [4, 5, [6, 758, -15]] b [4, 5, [6, 758, -15]]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment