Передача объектов параметрами в Python

Переменные, содержащие объекты (списки, множества, кортежи, словари) в функциях передаются по ссылке. Давайте перепишем код в функции так, чтобы первый элемент передаваемой переменной менялся на восклицательный знак. А ниже функции объявим переменную, значением которой является список:

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

Поскольку списки передаются по ссылке, при вызове функции изменится и значение lst в глобальной области видимости:

func(lst) # выведет ['!', 2, 3, 4, 5]
print(lst) # выведет ['!', 2, 3, 4, 5]

Каким будет результат выполнения следующего кода:

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

print(lst)

Каким будет результат выполнения следующего кода:

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

print(lst)

Каким будет результат выполнения следующего кода:

def func(lst):
	lst = '!'

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

print(lst)

Каким будет результат выполнения следующего кода:

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

func(dct)
print(dct)



Чат с GPT Компилятор