Sobes.tech
Middle

a = 4 b = [4] wynik = (a, b) a = 5 b.append(5) Pytanie: jaka jest wartość result po wykonaniu wszystkich linii i dlaczego?

sobes.tech AI

Odpowiedź od AI

Po wykonaniu wszystkich linii, zmienna result będzie równa (4, [4, 5]).

Wyjaśnienie:

  • W linii result = (a, b) tworzony jest krotka, gdzie a to liczba 4, a b to odwołanie do listy [4].
  • Następnie a zmienia się na 5, ale nie wpływa to na już utworzoną krotkę, ponieważ liczby są obiektami niemutowalnymi, a w krotce przechowywana jest wartość 4.
  • Wywołanie b.append(5) modyfikuje listę b na miejscu, dodając element 5.
  • Ponieważ w krotce przechowywane jest odwołanie do listy b, zmiany na liście są odzwierciedlane również wewnątrz krotki.

Wynik:

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