1 #题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
代码:
2 3 i = int(input('请输入一个数字:')) 4 li = [10,20,30,40,50] 5 print(li) 6 for x in range(5): 7 if i <= li[0]: 8 li.insert(0,i) 9 break 10 elif i >= li[4]: 11 li.append(i) 12 break 13 elif i > li[x] and i <= li[x+1]: 14 li.insert(x+1,i) 15 break 16 print(li)
运行结果:
[root@HK code_100]# python code_39.py 请输入一个数字:7[10, 20, 30, 40, 50][7, 10, 20, 30, 40, 50][root@HK code_100]# python code_39.py 请输入一个数字:15[10, 20, 30, 40, 50][10, 15, 20, 30, 40, 50][root@HK code_100]# python code_39.py 请输入一个数字:35[10, 20, 30, 40, 50][10, 20, 30, 35, 40, 50][root@HK code_100]# python code_39.py 请输入一个数字:80[10, 20, 30, 40, 50][10, 20, 30, 40, 50, 80][root@HK code_100]#
代码解释:
2 3 i = int(input('请输入一个数字:')) #定义变量i,接收输入的数字,转换成int类型 4 li = [10,20,30,40,50] #定义一个初始list 5 print(li) #打印list,供参考比较 6 for x in range(5): #遍历列表list 7 if i <= li[0]: #如果i值小于li的最小值 8 li.insert(0,i) #在列表list的头部插入 9 break #有匹配项后跳出循环,避免重复插入 10 elif i >= li[4]: #如果i值大于li最大值 11 li.append(i) #在列表list尾部追加数字i 12 break #有匹配项后跳出循环,避免重复插入 13 elif i > li[x] and i <= li[x+1]: #如果i大于列表前一项,小于列表后一项 14 li.insert(x+1,i) #将i值插入到li列表中 15 break #跳出循环,避免重复插入 16 print(li) #打印插入i之后的列表li