I Python bruges =-operatoren til at tildele værdier til variabler.
a = 100
b = 200
print(a)
# 100
print(b)
# 200
Som i eksemplet ovenfor kan du tildele værdier til flere variabler på én gang i stedet for én ad gangen, hvilket er praktisk, fordi det kun kræver én enkelt kodelinje at skrive.
Følgende to tilfælde er beskrevet.
- Tildele flere værdier til flere variabler
- Tildele den samme værdi til flere variabler
Tildele flere værdier til flere variabler
Der kan tildeles flere værdier til flere variabler samtidig ved at adskille variabler og værdier med kommaer.
a, b = 100, 200
print(a)
# 100
print(b)
# 200
Tre eller flere variabler, hver af forskellig type, er acceptable.
a, b, c = 0.1, 100, 'string'
print(a)
# 0.1
print(b)
# 100
print(c)
# string
Hvis der er én variabel på venstre side, tildeles den som en tupel.
a = 100, 200
print(a)
print(type(a))
# (100, 200)
# <class 'tuple'>
Hvis antallet af variabler i venstre side ikke svarer til antallet af værdier i højre side, opstår der en ValueError-fejl, men resten kan tildeles som en liste ved at tilføje en asterisk til variablen.
# 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'>
Du kan finde flere oplysninger om asterisker og om, hvordan du tildeler elementer i en tupel eller liste til flere variabler, i følgende artikel.
Tildele den samme værdi til flere variabler
Den samme værdi kan tildeles flere variabler ved at bruge = efter hinanden. Dette er nyttigt til at initialisere flere variabler til den samme værdi.
a = b = 100
print(a)
# 100
print(b)
# 100
Mere end 3 stykker er acceptable.
a = b = c = 'string'
print(a)
# string
print(b)
# string
print(c)
# string
Efter tildeling af den samme værdi kan en anden værdi tildeles en af dem.
a = 200
print(a)
# 200
print(b)
# 100
Vær forsigtig, når du tildeler ændrede objekter som f.eks. lister og ordbogstyper frem for uforanderlige (uændrede) objekter som f.eks. hele tal, flydende tal og strenge.
Hvis du bruger = fortløbende betyder det, at alle variabler peger på det samme objekt, så hvis du ændrer værdien af et element eller tilføjer et nyt element, vil de andre også ændre sig.
a = b = [0, 1, 2]
print(a is b)
# True
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [100, 1, 2]
Samme som nedenfor.
b = [0, 1, 2]
a = b
print(a is b)
# True
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [100, 1, 2]
Hvis du ønsker at behandle dem separat, skal du blot tildele dem hver for sig.
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]
Der er også metoder til at generere overfladiske og dybe kopier med copy() og deepcopy() i kopimodulet.