Objektide edastamine parameetritena Pythonis

Muutujad, mis sisaldavad objekte (loendid, hulgad, ennikud, sõnastikud), edastatakse funktsioonides viitega. Kirjutame koodi funktsioonis ümber nii, et esimene element edastatavas muutujas muutub hüüumärgiks. Ja allpool funktsiooni deklareerime muutuja, mille väärtuseks on loend:

pythondef func(tst):
  tst[0] = '!'
  print(tst)
  
lst = [1, 2, 3, 4, 5]

Kuna loendeid edastatakse viitega, siis funktsiooni väljakutsumisel muutub ka lst väärtus globaalses ulatuses:

pythonfunc(lst) # väljund on ['!', 2, 3, 4, 5]
print(lst) # väljund on ['!', 2, 3, 4, 5]
Задание 1

Milline on järgmise koodi täitmise tulemus:

pythondef func(lst):
  lst[0] = '!'
  
lst = [1, 2, 3, 4, 5]
func(lst)

print(lst)
Задание 2

Milline on järgmise koodi täitmise tulemus:

pythondef func(lst):
  lst[0] = '!'
  
lst = [1, 2, 3, 4, 5]
lst = func(lst)

print(lst)
Задание 3

Milline on järgmise koodi täitmise tulemus:

pythondef func(lst):
  lst = '!'

lst = [1, 2, 3, 4, 5]
func(lst[0])

print(lst)
Задание 4

Milline on järgmise koodi täitmise tulemus:

pythondef func(dct):
  for key in dct.keys():
    dct[key] += 2
  
dct = {
  'a': 1,
  'b': 2,
  'c': 3,
}

func(dct)
print(dct)