Czesc,
robie zadanie (obracanie macierzy) algorytm wyglada tak że najpierw robie reverse() na liscie (to działa poprawnie) a potem chce zamienic 0 na 1 i odwrotnie tj 1 na 0 i tu pojawia sie problem.
Jak widac zapisałem v = not(v)
gdzie v jest iteratorem (chyba moge tak powiedziec) po r (wierszu).
Problem jest taki że ta zamiana nie działa, dlaczego? Domyslam się że ma to coś wspolnego z tym że korzystam z petli for in. Ale znalazłem takie info: (w pytaniu na temat różnic miedzy poszczególnymi pętlami):
for i in list_name
Above will correspond i to every object in the list,i.e, each iteration will enable you to invoke/interact with methods of a particular object in the list.
i z tego co rozumiem to skoro moge "interact" to chyba modyfikacja też powinna działać? Tym bardziej że 2 linijki wyżej r.reverse() już działa a to tez iterator po liscie.
def flipAndInvertImage(self, A):
for r in A:
r.reverse()
for v in r:
v = not(v)
return A
Z góry dzieki za pomoc
Edit:
tak jak myslalem miało to chyba zwiazek z for in, bo teraz użyłem for in range() i działa poprawnie: (Jednak dalej nie wiem czemu?)
def flipAndInvertImage(self, A):
for r in range(len(A)):
A[r].reverse()
for v in range(len(A[r])):
A[r][v] = int(not(A[r][v]))
return A
PS. musiałem jeszcze zrobić zmianę bool -> int bo w sumie nie wiedziałem, że w pythonie mi tego automatycznie nie rzutuje