# # list shallow copy # list_a = [10, 20, 'a', 9] print(""" list_b = list_a[:] # Will also work: list_b = list(list_a) # list_b = list_a.copy() """) list_b = list_a[:] print(f"list_a: {list_a}") print(f"list_b: {list_b}") print(f"list_a[0]: {list_a[0]}") print(f"list_a[3]: {list_a[3]}") print(""" list_a[0] = 44 list_a[3] = 88 """) list_a[0] = 44 list_a[3] = 88 print(f"list_a: {list_a}") print(f"list_b: {list_b}") print(f"list_a[0]: {list_a[0]}") print(f"list_a[3]: {list_a[3]}") print(f"list_b[0]: {list_b[0]}") print(f"list_b[3]: {list_b[3]}") print("list_b[1] = 66") list_b[1] = 66 print(f"list_a: {list_a}") print(f"list_b: {list_b}") print(f"list_a[1]: {list_a[1]}") print(f"list_b[1]: {list_b[1]}") # shallow copy. # If an item is a list itself, it copies a reference. print(""" list_a = [10, [20,30], 'a', ['k',9]] list_b = list_a[:] """) list_a = [10, [20,30], 'a', ['k',9]] list_b = list_a[:] print(f"list_a: {list_a}") print(f"list_b: {list_b}") print(f"list_a[0]: {list_a[0]}") print(f"list_a[1][1]: {list_a[1][1]}") print(f"list_a[3][0]: {list_a[3][0]}") print(""" list_a[0] = 22 list_a[1][1] = 77 """) list_a[0] = 22 list_a[1][1] = 77 print(f"list_a: {list_a}") print(f"list_b: {list_b}") print(f"list_a[0]: {list_a[0]}") print(f"list_a[1][1]: {list_a[1][1]}") print(f"list_b[0]: {list_b[0]}") print(f"list_b[1][1]: {list_b[1][1]}") print("list_b[3][0] = 'hello'") list_b[3][0] = 'hello' print(f"list_a: {list_a}") print(f"list_b: {list_b}") print(f"list_b[3][0]: {list_b[3][0]}") print(f"list_a[3][0]: {list_a[3][0]}")