Python练习实例39 | 按顺序,在原有的数列当中,插入一个
2020-03-08 本文已影响0人
暮光微晓破倾城

想要实现这个功能,需要我们首先来进行一下判断,看新插入的数字,与原来的数字进行比较,会出现几种情况。
第一种情况,如果新插入的数字,大于前面所有的列表数字,那么,这个新插入的数字应该放在最后即可。
第二种情况,新插入的数字,比倒数第二个(不是倒数第一个,是因为最后一个数字需要占位)数字要小,我们需要将这个数字插入到倒数第二个数与倒数第三个数字之间。
好了,分析完了之后,我们来看一下代码。
# 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
if __name__ == "__main__": # 定义一个程序的入口
a = [1,4,6,9,13,16,19,28,40,100,0] # 创建一个空的列表,这里的0,仅仅占位,没有任何意思
print("原始列表:") # 将空列表打印出来
for i in range(len(a)): # 遍历列表当中的元素,并打印出来
print (a[i],end=",")
num = int(input("\n请输入一个整数:")) # 输入一个数字
end = a[9] # 定位倒数第二位的一位变量,这里也可以写成a[-2]
if num > end: # 如果输入的数字大于倒数第二个的数字
a[10]=num # 将num的值换成最后一个的占位的数字,这里也就是0
else: # 否则
for i in range(10): #遍历列表前10个元素
if a[i]>num: # 如果列表当中的元素的值大于num
temp1 = a[i] # 将这个元素赋值给temp1,这里主要是想让a[i]为num腾出一个地方
a[i]=num # 将num的值,替代为a[i]原本所在的位置的值
for j in range(i+1,11): # 这里的意思,就是依次将原来的数 后移动一个位置。
temp2 = a[j]
a[j]=temp1
temp1=temp2
break
print("排序后的列表:") # 打印出排序后的列表
for i in range(11):
print(a[i],end=",") # 遍历下标,打印出下标所对应的元素。
2020年3月8日
北京市通州区京贸中心