ziomkus ziomkus 24.02.2018, 12:13:04 1 Mam taki program:a = [1, 2]b = aa.remove(1)Może mi ktos wytlumaczyc czemu a.remove(1) usuwa tez wartosci z listy b i jak temu zapobiec?#python #naukaprogramowania Cronox
sokytsinolop sokytsinolop 24.02.2018, 12:14:22 2 @ziomkus: https://stackoverflow.com/questions/2612802/how-to-clone-or-copy-a-list ziomkus konto usunięte
bl4desofglory bl4desofglory 24.02.2018, 12:15:51 2 @ziomkus: zamień b = a na b = a[:] ziomkus wiewior_s
ziomkus ziomkus 24.02.2018, 12:17:27 0 Dzieki chłopaki za pomoc, bo nie wiedzialem nawet za bardzo jak to wpisac w google
venomik venomik 24.02.2018, 12:22:32 0 @ziomkus: To jeszcze sugeruję aby w dokumentacji przeczytać sobie o różnicach pomiędzy deep copy oraz shallow copy. W Twoim przypadku akurat się nie przyda, ale pozwoli nieco lepiej ogarnąć naturę tworzenia kopii obiektó w pythonie, przez co zachowanie powyższe stanie się dla Ciebie kompletnie naturalne.https://stackoverflow.com/questions/17246693/what-exactly-is-the-difference-between-shallow-copy-deepcopy-and-normal-assignmhttps://docs.python.org/3/library/copy.html
venomik venomik 24.02.2018, 12:25:35 0 I jeszcze drobiazg na koniec:>>> a = [1, 2, 3]>>> b = [1, 2, 3]>>> a == bTrue>>> a is bFalseoraz:>>> a = [1, 2, 3]>>> b = a>>> a == bTrue>>> a is bTrue
michael93pl michael93pl 24.02.2018, 14:27:38 0 @venomik: Dobrze pamiętam z książki o strukturach danych, że == sprawdza wartość a is sprawdza refke?
a = [1, 2]
b = a
a.remove(1)
Może mi ktos wytlumaczyc czemu a.remove(1) usuwa tez wartosci z listy b i jak temu zapobiec?
#python #naukaprogramowania
https://stackoverflow.com/questions/17246693/what-exactly-is-the-difference-between-shallow-copy-deepcopy-and-normal-assignm
https://docs.python.org/3/library/copy.html
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a == b
True
>>> a is b
False
oraz:
>>> a = [1, 2, 3]
>>> b = a
>>> a == b
True
>>> a is b
True