Python - 快速排序 - 超出最大递归深度

Sou*_*abh 1 python recursion quicksort

这是我的代码:

from random import randint

def quick_sort(sort_me):
    if len(sort_me) < 2:
        return sort_me

    pivot = sort_me[0]

    this = lower = upper = []

    for x in sort_me:
        if x < pivot:
            lower.append(x)
        elif x > pivot:
            upper.append(x)
        else:
            this.append(x)

    return quick_sort(lower) + this + quick_sort(upper)
Run Code Online (Sandbox Code Playgroud)

我在终端中可以看到的是:

File "sorts.py", line 19, in quick_sort
  return quick_sort(lower) + this + quick_sort(upper)
RuntimeError: maximum recursion depth exceeded
Run Code Online (Sandbox Code Playgroud)

我认为this列表有问题,但我不知道是什么.救命!

use*_*ica 5

this = lower = upper = []
Run Code Online (Sandbox Code Playgroud)

分配永远不会在Python中创建副本.这一行不会创建3个列表; 它创建1名列表和使this,lower和upper都是指列表.制作3个清单.

this = []
lower = []
upper = []
Run Code Online (Sandbox Code Playgroud)