[問題] 新手list問題請教

看板Python作者時間6年前 (2018/09/26 10:20), 編輯推噓4(409)
留言13則, 3人參與, 6年前最新討論串1/6 (看更多)
大家好,我目前在國外求學,算是程式新手 班上一個人都不認識,助教的口音也幾乎聽不懂QQ 只好拿作業上來問 題目是要寫一個increment的方法,輸入和輸出的型態都要是list 例子: z=[0,9,9,9] z.increment() >> [1,0,0,0] 我目前寫的: def increment(self): zadd=self.amount a=zadd while '9' in a: a.remove('9') if a==[]: zadd=['0',zadd] #如果陣列裡全是9,在最前面加0 i=len(zadd) while i!=0: if zadd[i-1]=='9' : zadd[i-1]='0' #一項一項將9轉為0 i-=1 else: zadd[i-1]+=1 #非9的話加1 return zadd 將9轉為0那邊沒有問題 但當陣列全為9,在最前面加入0那邊 不知道為什麼zadd其中的9也跟著a被remove掉 舉個例子,如果輸入['0','9','9','9'],a會變成['0'],但zadd也會一起變成['0'] 但我以為zadd應該還是原本的樣子 第二個問題是else裡+1那邊,請問要怎麼做才能讓list中的東西進行運算呢 我試過將他轉成string,但還是顯示must str not int 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 131.212.251.144 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1537928410.A.387.html

09/26 10:33, 6年前 , 1F
感覺你不需要寫一個class 所以應該不用self 還是你
09/26 10:33, 1F

09/26 10:33, 6年前 , 2F
的class繼承list?
09/26 10:33, 2F

09/26 10:37, 6年前 , 3F
第二感覺你邏輯錯誤 這題感覺是把整個list當一個數
09/26 10:37, 3F

09/26 10:37, 6年前 , 4F
然後各位數加1吧? 你remove了全部的9看起來意義不
09/26 10:37, 4F

09/26 10:38, 6年前 , 5F
明,這題list中如果都是string 你應該用hashmap映射
09/26 10:38, 5F

09/26 10:38, 6年前 , 6F
加1後的值 如果加1變0的話處理下一個進位 如果不用進
09/26 10:38, 6F

09/26 10:38, 6年前 , 7F
在上面有一個class要用來將輸入都轉為list,那邊我已經寫
09/26 10:38, 7F

09/26 10:38, 6年前 , 8F
位就斷掉loop 第二種情況是首位是0那就加一位在前面
09/26 10:38, 8F

09/26 10:50, 6年前 , 9F
既然你有處理的function 那就先把list裡的字串先處理
09/26 10:50, 9F

09/26 10:50, 6年前 , 10F
數字阿...
09/26 10:50, 10F

09/26 19:16, 6年前 , 11F

09/26 19:23, 6年前 , 12F
啊 最後忘記轉回int
09/26 19:23, 12F

09/28 09:22, 6年前 , 13F
我成功完成整個程式了,謝謝大家推文和回文的指導QwQ
09/28 09:22, 13F
文章代碼(AID): #1RgkpQE7 (Python)
文章代碼(AID): #1RgkpQE7 (Python)