bonjour,
desole par avance des questions que je pose, mais je debute en python.
je debuggais mon programme quand je suis tomber sur un truc bizzard.
du coup j'ai fait un exemple, pour que l'on m'explique.
je ne vois pas clair dans l'affectation de reference et la copie ...
pour illustrer, voici un code que j'aimerai mieux comprendre :
qui donne comme resultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 a = [ [1], [2] ] b = [ [1], [2] ] c = [ [1], [2] ] d = [ [1], [2] ] e = [ 4, 5 ] f = [ 4, 5 ] g = [ 4, 5 ] h = [ 4, 5 ] for k in a: k.append(e) print a for k in b: k.append(f[:]) print b for k in c: k.append(g) print c for k in d: k.append(h[:]) print d print "----" e = "modif via e" f = "modif via f" g[0] = "modif via g[0]" h[0] = "modif via h[0]" print a print b print c print d print "----" a[0][1][1] = "modif via a[0][1][1]" b[0][1][1] = "modif via b[0][1][1]" c[0][1][1] = "modif via c[0][1][1]" d[0][1][1] = "modif via d[0][1][1]" print a print b print c print d print e print f print g print h
merci par avance de m'expliquer comment etre sur lorsque c'est une reference et lorsque c'est une copie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 [[1, [4, 5]], [2, [4, 5]]] [[1, [4, 5]], [2, [4, 5]]] [[1, [4, 5]], [2, [4, 5]]] [[1, [4, 5]], [2, [4, 5]]] ---- [[1, [4, 5]], [2, [4, 5]]] [[1, [4, 5]], [2, [4, 5]]] [[1, ['modif via g[0]', 5]], [2, ['modif via g[0]', 5]]] [[1, [4, 5]], [2, [4, 5]]] ---- [[1, [4, 'modif via a[0][1][1]']], [2, [4, 'modif via a[0][1][1]']]] [[1, [4, 'modif via b[0][1][1]']], [2, [4, 5]]] [[1, ['modif via g[0]', 'modif via c[0][1][1]']], [2, ['modif via g[0]', 'modif via c[0][1][1]']]] [[1, [4, 'modif via d[0][1][1]']], [2, [4, 5]]] modif via e modif via f ['modif via g[0]', 'modif via c[0][1][1]'] ['modif via h[0]', 5]![]()
Partager