#for i in range()
引自Python for i in range ()用法详解_python_脚本之家 (jb51.net)
快速排序
nums=[5,3,6,4,1,2,8,7]
for i in range(1,len(nums)): #遍历未排序的元素
for j in range(i): #遍历已有序的元素
if nums[j]>nums[i]: #找到插入位置,从小到大排列
#if nums[j]<nums[i]: #从大到小排列
ins=nums[i]
nums.pop(i) #pop()将列表指定位置的元素移除,同时可以将移除的元素赋值给某个变量,不填写位置参数则默认删除最后一位
nums.insert(j,ins)
break #完成插入后跳出for循环
print(nums)
举一个特殊的小例子,说明 i 遍历的是未排序的元素,j 遍历的是已有序的元素
我们先赋值循环是 for i in range(1,3)
等价于 i 取值1,2
1.一次循环: 那么当i=1时, for j in range(i) 等价于for j in range(1),也就是j取值为0
所以这时是i=1,j=0,也就是在数组中j在i前面
2.第二次循环: 也就是当i=2时,for j in range(i) 等价于for j in range(2),j此时取值0,1
nums.pop()和nums.insert(j,ins)
pop
直接在pop函数内输入要删除元素的索引号即可,例如:
nums = [0,3,6,8,2,1]
#删除索引为2对应的值
nums.pop(2)
输出结果:
[0, 3, 8, 2, 1]
nums.insert()
nums = [0,3,6,8,2,1]
#在索引为1处插入值为4的元素
nums.insert(1,4)
输出结果:
[0, 4, 3, 6, 8, 2, 1]
引自 Python列表元素的删除和插入 - 让我们来分析分析 - 博客园 (cnblogs.com)