Skip to content

Mehrfachzuweisung in Python: Mehrere Werte oder denselben Wert mehreren Variablen zuweisen

Python

Verwenden Sie in Python den Operator =, um Variablenwerte zuzuweisen.

a = 100
b = 200

print(a)
# 100

print(b)
# 200

Sie können mehrere Variablen in einer Zeile Werte zuweisen.

Dieser Artikel sterben die folgenden zwei Fälle.

  • Weisen Sie mehrere Variablen mehrere Werte zu
  • Weisen Sie mehrere Variablen zu erkennen Wert zu

Weisen Sie mehrere Variablen mehrere Werte zu

Sie können mehrere Variablen mehrere Werte zuweisen, indem Sie Variablen und Werte durch Kommas trennen.

a, b = 100, 200

print(a)
# 100

print(b)
# 200

Sie können mehr als drei Variablen zuweisen. Auch eine Zuordnung zu unterschiedlichen Typen ist möglich.

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

print(a)
# 0.1

print(b)
# 100

print(c)
# string

Wenn sich auf der linken Seite eine Variable befindet, 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 und die Anzahl der Werte auf der rechten Seite nicht übereinstimmen, wird ein ValueError ausgegeben, aber Sie können den Rest als Liste zuweisen, indem Sie * an den Variablennamen anhängen.

# 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 * und zum Zuweisen von Elementen eines Tupels und einer Liste zu mehreren Variablen finden Sie im following Artikel.

Es ist auch möglich, die Werte mehrerer Variablen auf die gleiche Weise zu vertauschen. Siehe den Artikel unten.

Weisen Sie mehrere Variablen zu erkennen Wert zu

Sie können mehrere Variablen sehen Wert zuweisen, indem Sie nacheinander = verwenden.

Dies ist beispielsweise nützlich, wenn mehrere Variablen auf Wert initialisiert werden.

a = b = 100

print(a)
# 100

print(b)
# 100

Es ist auch möglich, einem anderen Wert einen anderen Wert zuzuweisen, nachdem derselbe Wert zugewiesen wurde. Wie später beschrieben, muss bei der Zuweisung von veränderlichen Objekten wie Listen oder Wörterbüchern Vorsicht walten.

a = 200

print(a)
# 200

print(b)
# 100

Sogar drei oder mehr können auf die gleiche Weise geschrieben werden.

a = b = c = 'string'

print(a)
# string

print(b)
# string

print(c)
# string

Seien Sie vorsichtig, wenn Sie veränderliche Objekte wie list oder dict anstelle von unveränderlichen Objekten wie int, float oder str zuweisen.

Wenn SIE nacheinander = verwenden, WIRD allen Variablen dasselbe Objekt zugewiesen. If you also den Wert von element ändern oder ein neues Element hinzufügen, ändert sich auch das andere.

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 separat behandeln möchten, & SIE jeden zuweisen.

nach c = []; d = [], c und d beziehen sich garantiert auf zwei verschiedene, eindeutige, neu erstellte leere Listen. (Beachten Sie, dass c = d = [] c und d dasselbe Objekt zuweist.)
3. Datenmodell – Dokumentation zu Python 3.8.0

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]

Sie können auch copy() oder deepcopy() des Kopiermoduls verwenden, um flache und tiefe Kopien zu erstellen. Siehe folgenden Artikel.