163 votes

Python affecte plusieurs variables à la même valeur ? comportement de la liste

J'ai essayé d'utiliser l'affectation multiple comme indiqué ci-dessous pour initialiser les variables, mais je suis confus par le comportement, je m'attends à réaffecter la liste des valeurs séparément, je veux dire b[0] et c[0] égale 0 comme avant.

a=b=c=[0,3,5]
a[0]=1
print(a)
print(b)
print(c)

Le résultat est : [1, 3, 5] [1, 3, 5] [1, 3, 5]

Est-ce correct ? Que dois-je utiliser pour l'affectation multiple ? Qu'est-ce qui est différent de cela ?

d=e=f=3
e=4
print('f:',f)
print('e:',e)

résultat : ('f:', 3) ('e:', 4)

0voto

Dev Parzival Points 391

Pour attribuer la même valeur à plusieurs variables, je préfère list

a, b, c = [10]*3#multiplying 3 because we have 3 variables
print(a, type(a), b, type(b), c, type(c))

sortie :

10 <class 'int'> 10 <class 'int'> 10 <class 'int'>

Initialiser plusieurs objets :

import datetime

time1, time2, time3 = [datetime.datetime.now()]*3

print(time1)
print(time2)
print(time3)

sortie :

2022-02-25 11:52:59.064487
2022-02-25 11:52:59.064487
2022-02-25 11:52:59.064487

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X