[問題] 多重變數Multiple Assignment Statement

看板Python作者 (justlikethis)時間9年前 (2016/09/28 09:47), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串1/1
最近在用python 練leetcode 其中一題是做reverseList 參考討論區 答案如下: Q:Reverse a singly linked list. def reverseList(self, head): rev = None while head: head.next,rev,head = rev,head,head.next return rev 第四行,如果改成如下就會 Error 'NoneType' object has no attribute 'next' head,rev,head.next = head.next,head,rev 請問multiple assignment 有順序嗎?自己認為他是把右方先都存在暫時變數, 再存到左邊,如果是這樣順序怎麼變都應該沒關係. 但顯然不是. 另外請問前輩你們推薦這種寫法嗎?還是說分開一行一行的比較好 先謝謝回答 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.174.49.248 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1475027232.A.4E7.html

09/28 09:58, , 1F
明白了,右邊沒有順序,但左邊會先處理第一個再接下去
09/28 09:58, 1F

09/28 09:59, , 2F
所以head.next 要先取代,再來才是head. 反之則會error
09/28 09:59, 2F

09/28 12:54, , 3F
長知識了,不過為什麼不用slice?(list[::-1])
09/28 12:54, 3F

09/29 06:08, , 4F
那如果在右邊加括弧呢?感覺會先建成一個 tuple 再拆開
09/29 06:08, 4F

09/29 19:18, , 5F
回Type: head是ListNode 不是list, 但我也沒發現還有這招
09/29 19:18, 5F

09/30 12:56, , 6F
謝謝指教,我還是coding新手沒有linked list的概念,
09/30 12:56, 6F

09/30 12:58, , 7F
補充了一下背景知識,的確應該和__getitem__沒什麼關聯
09/30 12:58, 7F

09/30 21:42, , 8F
回eight, 加括弧和不加是一樣的結果,我猜他都會先建
09/30 21:42, 8F

09/30 21:42, , 9F
tuple 再分配的.
09/30 21:42, 9F
文章代碼(AID): #1Nwo4WJd (Python)
文章代碼(AID): #1Nwo4WJd (Python)