Փոփոխականների փոխանցում հղումով Python-ում

Python-ում բարդ օբյեկտներ պարունակող փոփոխականները փոխանցվում են հղումով: Սա նշանակում է, որ բոլոր փոփոխությունները, որոնք կատարվել են մի փոփոխականում, կարտացոլվեն երկրորդի վրա: Եվ չնայած նրան, որ արժեքների նմանատիպ վերագրումը մեծացնում է սխալների առաջացման ռիսկը, այնուամենայնիվ զգալիորեն խնայվում է օպերացիոն համակարգի համակարգային հիշողության ռեսուրսները:

Ենթադրենք ունենք երկու ցուցակ:

pythonlst1 = [1, 2, 3, 4, 5]
lst2 = lst1

Քանի որ lst2 փոփոխականին վերագրվել է lst1 արժեքը, այժմ համակարգչի օպերատիվ հիշողության մեջ պահվում է մեկ ցուցակ, որին միաժամանակ հղվում են երկու փոփոխականներ:

Եկեք փոխենք lst2-ի առաջին տարրը և արտածենք առաջին ցուցակը կոնսոլում:

pythonlst2[0] = '!'
print(lst1) # կարտածի ['!', 2, 3, 4, 5]
Задание 1

Ինչի՞ կհանգի հետևյալ կոդի կատարումը:

pythonlst1 = [1, 2, 3, 4, 5]

lst2 = lst1
lst2[0] = '!'

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

Ինչի՞ կհանգի հետևյալ կոդի կատարումը:

pythonlst1 = [1, 2, 3, 4, 5]

lst2 = lst1
lst2[0] = '!'

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

Ինչի՞ կհանգի հետևյալ կոդի կատարումը:

pythonlst1 = ['a', 'b', 'c', 'd']

lst2 = lst1
lst3 = 'e'
lst2[2] = lst3

print(lst2)