Sobes.tech
Middle

a = 4 b = [4] eredmény = (a, b) a = 5 b.append(5) Kérdés: mi az eredmény értéke az összes sor végrehajtása után és miért?

sobes.tech MI

Válasz az MI-től

Az összes sor végrehajtása után a result változó értéke (4, [4, 5]) lesz.

Magyarázat:

  • A result = (a, b) sorban egy tuple jön létre, ahol az a értéke 4, a b pedig egy hivatkozás az [4] listára.
  • Ezután az a értéke 5-re változik, de ez nem befolyásolja a már létrehozott tuple-t, mivel a számok immutable objektumok, és a tuple-ban az érték 4 van tárolva.
  • A b.append(5) hívás módosítja a b listát helyben, hozzáadva az 5-öst.
  • Mivel a tuple tartalmaz egy hivatkozást a b listára, a lista változásai megjelennek a tuple-ban is.

Eredmény:

result == (4, [4, 5])  # True