這段python代碼的意思如何理解?
12-31
prev = None
while head:
head.next, prev, head = prev, head, head.next
return prev
這是反轉一個單鏈表,我想知道循環里,拆開該如何寫
來源:Simple python iterative solution
你是不知道什麼叫解tuple嗎?那句話拆開就是
fuck = prev
shit = head
bitch = head.next
head.next = fuck
prev = shit
head = bitch
在py里, 交換變數可以這樣寫 a,b=b,a
這句話會變成:old_b=b;old_a=a;a=old_b;b=old_a;
在這裡就是:head.next, prev, head = prev, head, head.next
old_prev=prev;
old_head=head;old_headnext=head.next;head.next=old_prev;
prev=old_head;head=old_headnext;話說,如此流暢的反轉代碼,贊一個!。
就是交換變數啊
循環里執行的操作和它看起來所做的是一樣的,位置對應的變數賦值,並且互不干擾。
難得答一次,還答錯了:(===================================py的這種寫法,剛開始可能會不太習慣,按c的風格的話,就會是這樣的:
prev = None
while head:
tmp = head.next
head.next = prev
prev = head
head = tmp
return prev
推薦閱讀:
※如何使用爬蟲監控一系列網站的更新情況?
※python已正確安裝numpy但無法調用?
※我數學很差,最近報了培訓班在學Python編程,上課都能聽懂,自己寫程序的時候感覺特別難是怎麼回事?
※如何理解python的類與對象?
※爬取網頁時如何寫入文字、圖片到一個文件里?