运行Python,报TypeError: can only concatenate list (not "int") to list
# 快排
def qsort(seq):
if seq == []:
return []
else:
pivot = seq[0]
lesser = qsort([x for x in seq[1:] if x < pivot])
greater = qsort([x for x in seq[1:] if x > pivot])
return lesser + pivot + greater
if __name__ == '__main__':
seq = [5, 6, 78, 9, 0, -1, 2, 3, -65, 12]
print(qsort(seq))
出现这样的错误是因为试图将一个列表与一个非列表类型的值连接,这是不允许的。列表连接两边必须都为列表(list):
可以改为如下:
return lesser + [pivot] + greater
可见:
相同类型的序列可以相加,尽管序列中元素的数据类型是不同的;
不同类型的序列不可以相加;