插入位置 描述 对一个有序的整数序列,现在要将一个整数插入进去,并保证该序列仍然有序。请输出这个数要插入的位置 第一行输入若干个整数,以空格间隔,本题保证用例中输入的数值顺序一定是从小到大,原始列表中无重复数据 第二行输入一个整数n 将整数序列放入列表ls 如果ls中已经存在n,则不插入该数,输出 'Fail'以及ls列表 若ls中可以插入n,输出插入位置,以及插入后的ls列表
可用列表索引和insert方法解。
ls=list(map(int,input('输入一个整数序列,空格隔开:').split()))
ls=sorted(set(ls))
n=int(input('输入一个整数:'))
if n in ls:
print('Fail')
print(ls)
else:
for i in range(len(ls)):
if ls[i]<n<ls[i+1]:
ind=i+1
ls.insert(ind,n)
elif n>ls[-1]:
ind = len(ls)
ls.insert(ind,n)
elif n<ls[0]:
ind = 0
ls.insert(ind, n)
print(f'数据插入位置为索引{ind}')
print(f'数据插入后列表{ls}')
ls = [1,3,5,7,9,11,13]
n = 8
if n in ls:
print('Failure',ls)
else:
if n<ls[0]:
print('插入位置:', str(0))
print([n]+ls)
elif n>ls[len(ls)-1]:
print('插入位置:', str(len(ls)))
print(ls+[n])
else:
for i in range(len(ls)):
if ls[i+1]>n>ls[i]:
print('插入位置:',str(i+1))
ls = ls[:i+1]+[n]+ls[i+1:]
print(ls)
break
或者下面这样也可以:
ls = [1,3,5,7,9,11,13]
n = 8
if n in ls:
print('Failure',ls)
else:
ls.append(n)
ls = sorted(ls)
print('插入位置:', ls.index(n))
print(ls)
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632