In Python wordt de = operator gebruikt om waarden toe te kennen aan variabelen.
a = 100
b = 200
print(a)
# 100
print(b)
# 200
Zoals in het voorbeeld hierboven, kunt u waarden toewijzen aan meerdere variabelen tegelijk in plaats van één per keer, wat handig is omdat het slechts één eenvoudige regel code vereist om te schrijven.
De volgende twee gevallen worden beschreven.
- Meerdere waarden aan meerdere variabelen toekennen
- Dezelfde waarde aan meerdere variabelen toekennen
Meerdere waarden aan meerdere variabelen toekennen
Meerdere waarden kunnen tegelijkertijd aan meerdere variabelen worden toegekend door variabelen en waarden van elkaar te scheiden met komma's.
a, b = 100, 200
print(a)
# 100
print(b)
# 200
Drie of meer variabelen, elk van een verschillend type, zijn aanvaardbaar.
a, b, c = 0.1, 100, 'string'
print(a)
# 0.1
print(b)
# 100
print(c)
# string
Als er één variabele aan de linkerkant staat, wordt deze toegewezen als een tupel.
a = 100, 200
print(a)
print(type(a))
# (100, 200)
# <class 'tuple'>
Als het aantal variabelen aan de linkerkant niet overeenkomt met het aantal waarden aan de rechterkant, zal een ValueError-foutmelding het gevolg zijn, maar de rest kan als een lijst worden toegewezen door een sterretje aan de variabele toe te voegen.
# 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'>
Voor meer informatie over asterisken en hoe je elementen van een tupel of lijst aan meerdere variabelen kunt toewijzen, zie het volgende artikel.
Dezelfde waarde aan meerdere variabelen toekennen
Dezelfde waarde kan aan meerdere variabelen worden toegekend door = achtereenvolgens te gebruiken. Dit is nuttig om meerdere variabelen op dezelfde waarde te initialiseren.
a = b = 100
print(a)
# 100
print(b)
# 100
Meer dan 3 stuks zijn aanvaardbaar.
a = b = c = 'string'
print(a)
# string
print(b)
# string
print(c)
# string
Nadat dezelfde waarde is toegekend, kan een andere waarde aan een van hen worden toegekend.
a = 200
print(a)
# 200
print(b)
# 100
Wees voorzichtig met het toewijzen van veranderlijke objecten zoals lijsten en woordenboektypes, in plaats van onveranderlijke (onveranderlijke) objecten zoals gehele getallen, drijvende komma getallen, en strings.
Door = achtereenvolgens te gebruiken, wijzen alle variabelen naar hetzelfde object, dus als je de waarde van één element verandert of een nieuw element toevoegt, zullen de andere ook veranderen.
a = b = [0, 1, 2]
print(a is b)
# True
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [100, 1, 2]
Hetzelfde als hieronder.
b = [0, 1, 2]
a = b
print(a is b)
# True
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [100, 1, 2]
Als u ze afzonderlijk wilt verwerken, wijst u ze gewoon aan elk toe.
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]
Er zijn ook methoden om ondiepe en diepe kopieën te genereren met copy() en deepcopy() in de kopieermodule.