Zuweisung mehrerer oder desselben Werts an mehrere Variablen in Python

Geschäft

In Python wird der Operator = verwendet, um Variablen Werte zuzuweisen.

a = 100
b = 200

print(a)
# 100

print(b)
# 200

Wie im obigen Beispiel können Sie mehreren Variablen gleichzeitig Werte zuweisen, was praktisch ist, da Sie nur eine einzige Zeile Code schreiben müssen.

Die folgenden zwei Fälle werden beschrieben.

  • Mehrere Werte zu mehreren Variablen zuordnen
  • Den gleichen Wert mehreren Variablen zuweisen

Mehrere Werte zu mehreren Variablen zuordnen

Mehrere Werte können gleichzeitig mehreren Variablen zugewiesen werden, indem Variablen und Werte durch Kommas getrennt werden.

a, b = 100, 200

print(a)
# 100

print(b)
# 200

Drei oder mehr Variablen, jede von einem anderen Typ, sind zulässig.

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

print(a)
# 0.1

print(b)
# 100

print(c)
# string

Wenn auf der linken Seite eine Variable steht, wird sie als Tupel zugewiesen.

a = 100, 200

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

Wenn die Anzahl der Variablen auf der linken Seite nicht mit der Anzahl der Werte auf der rechten Seite übereinstimmt, kommt es zu einem ValueError-Fehler, aber der Rest kann als Liste zugewiesen werden, indem der Variablen ein Sternchen hinzugefügt wird.

# 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'>

Weitere Informationen zu Sternchen und zur Zuweisung von Elementen eines Tupels oder einer Liste an mehrere Variablen finden Sie im folgenden Artikel.

Den gleichen Wert mehreren Variablen zuweisen

Der gleiche Wert kann mehreren Variablen zugewiesen werden, indem man nacheinander = verwendet. Dies ist nützlich, um mehrere Variablen mit demselben Wert zu initialisieren.

a = b = 100

print(a)
# 100

print(b)
# 100

Mehr als 3 Stück sind zulässig.

a = b = c = 'string'

print(a)
# string

print(b)
# string

print(c)
# string

Nach der Zuweisung desselben Wertes kann einem von ihnen ein anderer Wert zugewiesen werden.

a = 200

print(a)
# 200

print(b)
# 100

Seien Sie vorsichtig, wenn Sie veränderbare Objekte wie Listen und Wörterbücher zuweisen, anstatt unveränderbare Objekte wie Ganzzahlen, Gleitkommazahlen und Zeichenketten.

Die Verwendung von = nacheinander bedeutet, dass alle Variablen auf dasselbe Objekt verweisen. Wenn Sie also den Wert eines Elements ändern oder ein neues Element hinzufügen, ändern sich auch die anderen.

a = b = [0, 1, 2]

print(a is b)
# True

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

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

Dasselbe wie unten.

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

print(a is b)
# True

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

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

Wenn Sie sie getrennt bearbeiten möchten, ordnen Sie sie einfach jedem zu.

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]

Es gibt auch Methoden zur Erzeugung von flachen und tiefen Kopien mit copy() und deepcopy() im Kopiermodul.