python列表排序

该篇博客探讨了一种Python中对列表排序的优化方法,通过切片和索引操作,每次迭代找出剩余部分的最小值并与其当前位置交换。这种方法确保了每次迭代不会重复处理已移动过的元素,且适用于寻找最大值。对于列表中存在重复值的情况,这种方法同样有效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

list = [3,2,9,-9,10,70]
for i in range(len(list)-1):
    listIndex = list.index(min(list[i:]))
    list[i],list[listIndex] = list[listIndex],list[i]
print(list)

第一次先把列表的最小值找出来,然后把最小值的位置和i的位置进行交换

第二次循环的时候就 i = 1,因为步长设置的是从 i 开始到最后,这样就再次找最小值就不会找到第一次找到的最小值了,后续都是如此

简单来说就是,第一次排队找出来最小的,把他和第一位替换,第二次在排队时只要从第二个人开始就可以了

listIndex = list.index(min(list[i:])

最主要的就是这里,采用切片的方式排除掉已经移动过位置的数字

采用这种方式,如果我要求最大值时只需要把min() 函数改为max()函数即可,列表中有重复值也不会印象结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值