Bonsoir à tous,

J'aimerais économiser quelques octets de mon programme qui remplit une liste n*2 (une matrice n*2 quoi).
Mais cela ne fonctionne pas.

Voici la fonction qui fonctionne () :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from random import*
 
def Numero1(n):
 
    L = [None]*n
    for i in range (n):
        L[i] = [None]*2
 
    for k in range (n):
        x,y = randint(50,750),randint(50,750)
        L[k][0], L[k][1] = x,y
    print(L)
 
Numero1(6)
Et voici comment je la modifie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
from random import*  
 
def Numero2(n):
 
    L = [[None]*2]*n
 
    for k in range (n):
        x,y = randint(50,650),randint(50,650)
        L[k][0], L[k][1] = x,y    
    print(L)
 
Numero2(6)
Quand je compare les deux, cela remplit ma liste du même x et du même y () :
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
from random import*
 
def Numero1(n):
 
    L = [None]*n
    for i in range (n):
        L[i] = [None]*2
 
    for k in range (n):
        x,y = randint(50,750),randint(50,750)
        L[k][0], L[k][1] = x,y
    print(L)
 
def Numero2(n):
 
    L = [[None]*2]*n
 
    for k in range (n):
        x,y = randint(50,650),randint(50,650)
        L[k][0], L[k][1] = x,y    
    print(L)
 
Numero1(6)
print()
Numero2(6)