Assignació de múltiples o el mateix valor a diverses variables a Python

Negocis

A Python, l’operador = s’utilitza per assignar valors a variables.

a = 100
b = 200

print(a)
# 100

print(b)
# 200

Com a l’exemple anterior, podeu assignar valors a diverses variables alhora en lloc d’una a la vegada, la qual cosa és convenient perquè només requereix una línia de codi senzilla per escriure.

Es descriuen els dos casos següents.

  • Assignar diversos valors a diverses variables
  • Assigna el mateix valor a diverses variables

Assignar diversos valors a diverses variables

Es poden assignar diversos valors a diverses variables simultàniament separant variables i valors amb comes.

a, b = 100, 200

print(a)
# 100

print(b)
# 200

S’admeten tres o més variables, cadascuna d’un tipus diferent.

a, b, c = 0.1, 100, 'string'

print(a)
# 0.1

print(b)
# 100

print(c)
# string

Si hi ha una variable al costat esquerre, s’assigna com a tupla.

a = 100, 200

print(a)
print(type(a))
# (100, 200)
# <class 'tuple'>

Si el nombre de variables del costat esquerre no coincideix amb el nombre de valors del costat dret, es produirà un error ValueError, però la resta es pot assignar com una llista afegint un asterisc a la variable.

# a, b = 100, 200, 300
# ValueError: too many values to unpack (expected 2)

# a, b, c = 100, 200
# ValueError: not enough values to unpack (expected 3, got 2)

a, *b = 100, 200, 300

print(a)
print(type(a))
# 100
# <class 'int'>

print(b)
print(type(b))
# [200, 300]
# <class 'list'>

*a, b = 100, 200, 300

print(a)
print(type(a))
# [100, 200]
# <class 'list'>

print(b)
print(type(b))
# 300
# <class 'int'>

Per obtenir més informació sobre els asteriscs i com assignar elements d’una tupla o llista a diverses variables, consulteu l’article següent.

Assigna el mateix valor a diverses variables

El mateix valor es pot assignar a diverses variables utilitzant = consecutivament. Això és útil per inicialitzar diverses variables al mateix valor.

a = b = 100

print(a)
# 100

print(b)
# 100

S’admeten més de 3 peces.

a = b = c = 'string'

print(a)
# string

print(b)
# string

print(c)
# string

Després d’assignar el mateix valor, es pot assignar un altre valor a un d’ells.

a = 200

print(a)
# 200

print(b)
# 100

Aneu amb compte quan assigneu objectes mutables, com ara llistes i tipus de diccionari, en lloc d’objectes immutables (incanviables) com ara nombres enters, nombres de coma flotant i cadenes.

L’ús de = consecutivament significa que totes les variables apunten al mateix objecte, de manera que si canvieu el valor d’un element o afegiu un element nou, l’altre també canviarà.

a = b = [0, 1, 2]

print(a is b)
# True

a[0] = 100
print(a)
# [100, 1, 2]

print(b)
# [100, 1, 2]

Igual que a continuació.

b = [0, 1, 2]
a = b

print(a is b)
# True

a[0] = 100
print(a)
# [100, 1, 2]

print(b)
# [100, 1, 2]

Si voleu processar-los per separat, simplement assigneu-los a cadascun.

after c = []; d = [], c and d are guaranteed to refer to two different, unique, newly created empty lists. (Note that c = d = [] assigns the same object to both c and d.)
3. Data model — Python 3.10.4 Documentation

a = [0, 1, 2]
b = [0, 1, 2]

print(a is b)
# False

a[0] = 100
print(a)
# [100, 1, 2]

print(b)
# [0, 1, 2]

També hi ha mètodes per generar còpies superficials i profundes amb copy() i deepcopy() al mòdul de còpia.

Copied title and URL