python如何打印一个列表_在Python中按顺序排列给定列表,同时打印每个步骤

所以,我的老师,一个有点过于沉迷于为每项家庭作业添加细节的人,已经给出了一个我无法想办法的任务。

它是关于Python的快速排序,他希望我们构建一个快速排序列表的功能,同时打印出每一步。到目前为止,我一直在使用List Comprehension方法进行快速排序,但我无法弄清楚在哪里以及如何放置我的print语句。

这是我目前使用的代码:def quick_sort(lst):

if lst == []: return []

pivot = lst[0]

left = [x for x in lst[1:] if x < pivot]

right = [x for x in lst[1:] if x > pivot]

return quick_sort(left) + [pivot] + quick_sort(right)

我已经尝试打印出来python quick_sort(left) + [pivot] + quick_sort(right) 之前返回它,但它打印的输出与我想要的不匹配。考虑到这一点,这是有道理的,因为List Comprehension方法尝试通过将列表分成几部分对列表进行排序,并且我的函数在每个较小的分区上重新调用自己,直到其中没有剩余元素。

我希望,例如,当我输入一个列表时,[5, 1, 4, 3, 2]程序应该至少以这样的方式打印出步骤(考虑我将第一个元素作为数据透视):>>> Enter the list: 5, 1, 4, 3, 2

[1, 4, 3, 2, 5]5是枢轴,左边的值较小,现在[1, 4, 3, 2]应该进行排序

[1, 4, 3, 2, 5]1是枢轴,右边的值越大,现在[4, 3, 2]应该进行排序

[1, 3, 2, 4, 5]4是枢轴,左边的值较小,现在[3, 2]应该进行排序

[1, 2, 3, 4, 5]3是枢轴,左边的值较小,现在[2]应该进行排序

[1, 2, 3, 4, 5]2是pivot,没有值,返回[]和退出递归

也许这可以通过定义另一个函数来完成,该函数将存储一个额外的列表并在每次递归发生时更新它quick_sort(),但我还没有想到这一点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值