[問題] 新手return範例問題
看板Python作者wheado (principal component QQ)時間6年前 (2017/09/12 19:08)推噓1(1推 0噓 7→)留言8則, 3人參與討論串1/2 (看更多)
教學範例:
def quicksort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quicksort(left) + middle + quicksort(right)
print(quicksort([3,6,8,10,1,2,1]))
# Prints "[1, 1, 2, 3, 6, 8, 10]"
以例子來看,裡面變數應該是如下:
pivot = 3
left = [1,1,2]
middle = [3]
right = [6,8,10]
但是
想請教為何單純 return quicksort(left)
出來的結果是 []
為何 return quicksort(left) + quicksort(middle) + quicksort(right)
結果會是 Error
不了解最後 return 裡面到底是發生甚麼事情。
新手發問,謝謝大家。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.137.99
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1505214536.A.43D.html
→
09/12 19:20, , 1F
09/12 19:20, 1F
→
09/12 19:21, , 2F
09/12 19:21, 2F
※ 編輯: wheado (180.217.137.99), 09/12/2017 19:39:52
→
09/12 19:49, , 3F
09/12 19:49, 3F
推
09/12 19:52, , 4F
09/12 19:52, 4F
→
09/12 19:53, , 5F
09/12 19:53, 5F
→
09/12 19:53, , 6F
09/12 19:53, 6F
→
09/12 19:54, , 7F
09/12 19:54, 7F
→
09/12 20:01, , 8F
09/12 20:01, 8F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):