Μεταβίβαση μεταβλητών με αναφορά στην Python

Στην Python μεταβλητές που περιέχουν σύνθετα αντικείμενα μεταβιβάζονται με αναφορά. Αυτό σημαίνει, όλες οι αλλαγές που γίνονται σε μια μεταβλητή θα αντικατοπτριστούν στη δεύτερη. Και αν και με αυτόν τον τύπο ανάθεσης τιμών αυξάνεται ο κίνδυνος εμφάνισης σφάλματος, ωστόσο εξοικονομείται σημαντικά πόρος της μνήμης του συστήματος του ΛΣ.

Ας υποθέσουμε ότι έχουμε δύο λίστες:

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

Εφόσον στη μεταβλητή lst2 ανατέθηκε η τιμή lst1, τώρα στη μνήμη RAM του υπολογιστή αποθηκεύεται μια λίστα, στην οποία αναφέρονται ταυτόχρονα δύο μεταβλητές.

Ας αλλάξουμε το πρώτο στοιχείο της 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)