gpt4 book ai didi

python - 使用 Python 快速排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:32:35 26 4
gpt4 key购买 nike

我想知道是否有人可以帮助我修复我的快速排序代码中的错误:它不编译并以红色突出显示代码的最后一行。我不知道出了什么问题。 sort 已经定义为一个函数,为什么它突出显示为红色?

def sort(*myarray):
less = []
equal = []
greater = []

if len(myarray) > 1:
pivot = myarray[0]
for x in myarray:
if x < pivot:
less.append(x)
if x == pivot:
equal.append(x)
if x > pivot:
greater.append(x)
return sort(less)+sort(equal)+sort(greater)
else:
return myarray
print sort([12,4,5,6,7,3,1,15])

最佳答案

您将函数定义为采用可变数量的参数(*myarray 位),然后在内部使用 myarray 作为单个参数(列表排序),当它是一个列表时包含要排序的列表。

您可能应该从函数参数中删除 *This questions非常彻底地解释了它。

您可以保留 *,但这样您就必须对元组解包进行一些尝试才能获得相同的结果。

编辑

尽管上述内容属实,但这可能不是您遇到的问题。

IDLE 会在 ast 行给出无效语法错误,因为在交互模式下 - 对于以 >>> 开头的行,它一次只接受一个语句。在您的情况下,该语句是 sort() 定义。

尝试在函数定义后按回车键 2 次,这会让您回到 repl,您可以在其中引入另一条语句 (print sort([12,4,5,6,7,3,1, 15]))

关于python - 使用 Python 快速排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18263111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com