Cześć!
Mam taką sytuację:
def zmiana_elementu(tab):
tab[0] = 4
def zmiana_przez_tworzenie_kopii(tab):
tab = tab[2:]
tab = [4, 5, 6]
def tablica():
tab = [1, 2, 3]
zmiana_elementu(tab)
print(tab)
zmiana_przez_tworzenie_kopii(tab)
print(tab)
tablica()
wynikiem wykonania tego programu będzie:
[4, 2, 3]
[4, 2, 3]
Jak zrobić tak, żeby przekazywać do funkcji listę, a następnie po jej nazwie zmieniać ją do woli? Kojarzyło mi się że w Pythonie przekazujemy wszystko przez referencje, więc gdy robię taką operację
tab = [4, 5, 6]
to chyba tworzę zmienna tab
lokalnie w funkcji zmiana_przez_tworzenie_kopii
Jak zmieniać listę w funkcji do woli?
EDIT:
Jedynym obejściem tego problemu jest zwracanie nowej listy?