Meerdere of dezelfde waarde toekennen aan meerdere variabelen in Python

Bedrijf

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.

Copied title and URL