pyhon中quicksort算法的报错

写了一个quicksort算法,返回值都是array但是报错提示有string,因为要求只能有array一个输入元素,所以我默认pivot是第一个元素,指针从第二个元素开始向右移动,将输入array分成左中右三个小array,然后递归,直到小array只有一个元素或者为空为止,既pivot左侧或右侧全部元素排完
def quickSort(array):
    if len(array) <= 1:
        return array

    p = 0  #pivot
    pointer = p + 1
    left = []
    pivot = []
    right = []
    pivot.append(array[p])
    
    #devide array into 3 arrays
    while pointer < len(array):
        if array[pointer] < array[p]:
            left.append(array[pointer])
        elif array[pointer] > array[p]:
            right.append(array[pointer])
        else:
            pivot.append(array[pointer])
            #pointer moves towards right
        pointer += 1
   
    #concatenation of the 3 arrays
    return (f'{quickSort(left) + pivot + quickSort(right)}')

#测试内容
array = [7,5,8,1] 
quickSort(array)
print(array)
#报错内容
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[74], line 2
      1 array = [7,5,8,1] 
----> 2 quickSort(array)
      3 print(array) # das sortierte array

Cell In[73], line 24, in quickSort(array)
     21     pointer += 1
     23 #concatenation of the 3 arrays
---> 24 return (f'{quickSort(left) + pivot + quickSort(right)}')

TypeError: can only concatenate str (not "list") to str

快速排序代码如下,望采纳

def partition(nums, low, high):
    # 进行分区操作,选取第一个值为基准
    pivot = nums[low]
    i = low
    j = high
    while i < j:
        # j是从右向左走,如果值大于pivot则位置保持不变,j左移
        while i < j and nums[j] >= pivot:
            j -= 1
        # 不满足上述条件时,nums[j]<pivot,应该放在左边,所以将i位置赋值为j
        # 此时j位置空出
        nums[i] = nums[j]
        # I是从左向右走,如果值小于pivot则位置保持不变,i右移
        while i < j and nums[i] < pivot:
            i += 1
        # 不满足上述条件时,nums[i]>=pivot,应该放在右边,所以将h位置赋值为i
        # 此时j位置空出
        nums[j] = nums[i]
    # 将pivot的值放到正确的索引位置
    nums[i] = pivot
    return  i

# 快速排序函数
def quickSort(arr, low, high):
    # arr[] --> 排序数组
    # low  --> 起始索引
    # high  --> 结束索引
    if low < high:
        pi = partition(arr, low, high)   #pi为基准值的正确索引位置
        quickSort(arr, low, pi - 1)  #递归的排序子序列
        quickSort(arr, pi + 1, high) #递归的排序子序列
    return arr