##-----Importation du module copy-----##
from copy import *
##-----Création de variables-----##
A = [1,2,3]
C = [5,6,7]
L1 = [0] * 3
L2 = [[0]] * 3
L3 = [0,1,[4,5]]
##-----Définition de fonctions-----##
def f1():
B.append(7)
def f2():
B = [3]
def f3(X):
B = X
def f4(X):
global B
B = X
def f5(X):
X.append(1)
##-----Programme principal-----##
# Opérateurs "=" , "+", "+=" et méthode append()
B = A
print("1 : ",A, B )
B.append(4)
print("2 : ",A, B )
B = C
print("3 : ",A,B)
B = A
B = A + [5]
print("4 : ",A,B)
B = A
B = B + [1]
print("5 : ",A,B)
B = A
B += [1]
print("6 : ",A,B)
# Appels de fonctions
A = [1,2,3]
B = A
f1()
print("7 : ",A,B)
A = [1,2,3]
B = A
f2()
print("8 : ",A,B)
A = [1,2,3]
B = A
C = [5,6,7]
f3(C)
print("9 : ",A,B)
A = [1,2,3]
C = [5,6,7]
B = A
f4(C)
print("10 : ",A,B)
A = [1,2,3]
f5(A)
print("11 : ",A)
# Opérateur "*"
L1[1] +=1
print("12 : ",L1)
L2[1][0] +=1
print("13 : ",L2)
# Fonctions list(), copy() et deepcopy()
B = list(L3)
B.append(7)
print("14 : ",L3,B)
B[2].append(9)
print("15 : ",L3,B)
L3 = [0,1,[4,5]]
B = copy(L3)
B.append(7)
print("16 : ",L3,B)
B[2].append(9)
print("17 : ",L3,B)
L3 = [0,1,[4,5]]
B = deepcopy(L3)
B[2].append(11)
print("18 : ",L3,B)