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()函数即可,列表中有重复值也不会印象结果