python 练习 在列表元素中合适的位置插入 输入值

目的: 有一列从小到大排好的数字元素列表, 现在想往其插入一个值,要求: 大于右边数字小于左边数字
列表元素: [1,4,6,13,16,19,28,40,100]
# 方法: 往列表中添加一个数值,其目的方便元素位置往后移动一位,
因为如果我们找到了合适的位置,目前这个位置有元素在占着,我们需要将其适合位置后的每一个元素,往后挪动一位,如果不在最后添加一个元素,而且这个元素必须是 0 ,会发生栈缺失值的现象
其实我们就是做了  a[i] = a[i-1]  





元素100 消失了       执行 a[i] = a[i-1]   如果我们执行了从后往前迭代,a【9】 = a[8]   40 覆盖了100

a = [1,4,6,13,16,19,28,40,100,0]
print("befor:")
for i in range(0,len(a) - 1): print(a[i],end="\t")
print()
number = int(input("请输入你想要插入的数:"))

local = 0
for i in range(len(a)-2,-1,-1):   # 第二个-1 指的是步长为1不过是从右往左取
    if number > a[i]:
        local = i+1  # local 就是我们的插入点
        break
# 移动位置
for i in range(len(a)-1,local,-1): # local-1 是因为 range() 函数总是左闭右开

    # 如果写成local 只会取到 插入紧跟后面的一个数,本来插入点在6后面,因为range() 函数的原因就
    # 会将插入点选到了13后面
    a[i] = a[i-1]    # 从插入点每一个数都向后移动了1位, i 最后存在的位置只能是插入点
a[local] = number   # local 是我们的插入点  没执行这条语句之前 a[local] = a[local-1], 现在将插入的值赋到 替换点

print(a)

python 练习 在列表元素中合适的位置插入 输入值_第1张图片


学习资料: 转载: 【三天练完!学习Python必刷的100道经典实战练习真题,没练等于白学!!!】 https://www.bilibili.com/video/BV1SG411H7e1/?p=36&share_source=copy_web&vd_source=d0ef3d08fdeef1740bab49cdb3e96467

你可能感兴趣的:(python进阶,python,java,前端)