Przede wszystkim pozdrawiam wszystkich.
Jestem początkującym "pythonerem". Myślałem, że ogarniam funkcję, ale ostatnio coś mnie zadziwiło w moim programie.
Mianowicie mam funkcję:
https://pastebin.com/raw/De0NFdBL
def funkcja(b, c):
b = 10
c[0] = 10
print("b lokalnie", b)
b = 5
c = [5,5,5]
funkcja(b, c)
print(b)
print(c)
No i funkcja działa tak jak powinna. Lista jest mutowalna i ją zmieni, zmienna b cały czas pozostaje niezmieniona poza funkcją. No i OK.
Ale potrzebowałem zmienić w inny sposób listę za pomocą funkcji. Więc ją skopiowałem do listy "pomocniczej". Zmieniłem pomocniczą. I potem z powrotem skopiowałem listę główną, ale ona nie została zmieniona. Dlaczego?
https://pastebin.com/raw/A0DJMzbZ
def funkcja(c):
copy = c[:]
copy[0] = 10
print("Kopia: ", copy)
c = copy[:]
c = [5,5,5]
funkcja(c)
print(c)