2017-08-11 1 views
-3

Comment les modifications d'une liste peuvent-elles être répercutées dans une autre?Liste des références en python

lst = [0, 0] 
sublist = [lst[0], lst[0], lst[1], lst[1]] 
print sublist 
>> [0, 0, 0, 0] 
lst[0] = 1 
print sublist 
>> [0, 0, 0, 0] 
# But I would like to 
>> [1, 1, 0, 0] 

Comment puis-je obtenir le résultat souhaité? Désolé pour mon anglais.

+3

Les listes ne le permettent pas. Vous devrez trouver un autre moyen de résoudre tout problème que vous espérez résoudre en faisant cela. – user2357112

+2

En relation: https://nedbatchelder.com/text/names.html – chepner

+1

Si vous voulez que l'effet se propage, assurez-vous que l'objet est modifiable, dans votre exemple, vous devez rendre les éléments de 'lst' mutables. – nos

Répondre

0

Merci à tous! Je l'ai.

lst = [[] for i in range(2)] 
sublist = [lst[0], lst[0], lst[1], lst[1]] 
print lst 
print sublist 
lst[0].append(1) 
lst[1].append(2) 
print lst 
print sublist 
lst[1][0] = 0 
print lst 
print sublist 

>>[[], []] 
>>[[], [], [], []] 
>>[[1], [2]] 
>>[[1], [1], [2], [2]] 
>>[[1], [0]] 
>>[[1], [1], [0], [0]]