這段python代碼的意思如何理解?

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的類與對象?
爬取網頁時如何寫入文字、圖片到一個文件里?

TAG:Python | Python3x | PyCharm | Python入門 |