这是给定的输入序列,我们必须让List认为上面的命令将由用户作为输入给出。
12
insert 0 5
insert 1 10
insert 0 6
print
remove 6
append 9
append 1
sort
print
pop
reverse
print
以下操作的结果应该是这样的 -
[6,5,10] [1,5,9,10] [9,5,1]
以下代码将读取以文本形式给出的命令,其中第一行将是必须遵循的命令的总数,并且以下命令将作为文本给出。但代码对我来说不起作用它是不打印任何东西。为什么会这样?请提供此问题的解决方案。
L=[]
li=[]
def check(string):
for a in string:
if a=='insert':
li=string.split()
L.insert(int(li[1]),int(li[2]))
li=[]
elif(a=='append'):
li=string.split()
L.append(int(li[1]))
li=[]
elif(a=='sort'):
L.sort()
elif(a=='remove'):
li=string.split()
L.remove(li[1])
li=[]
elif(a=='print'):
print(L)
elif(a=='reverse'):
L.reverse()
elif a=='pop':
L=L[:-2]
else:
pass
N=int(input(""))
for i in range(N):
string =str(input(""))
check(string)
答案 0 :(得分:1)
看起来代码for a in string
在方法check()
处循环,迭代字符串的每个字母,因此不会执行任何操作......它总是会传递'。
答案 1 :(得分:1)
def check(string,L,li):
for a in map(str,string.split()):
if a =='insert':
li=string.split()
L.insert(int(li[1]),int(li[2]))
li=[]
elif(a=='append'):
li=string.split()
L.append(int(li[1]))
li=[]
elif(a=='sort'):
L.sort()
elif(a=='remove'):
li=string.split()
L.remove(li[1])
li=[]
elif(a=='print'):
print(L)
elif(a=='reverse'):
L.reverse()
elif a=='pop':
L=L[:-2]
else:
pass
break
N=int(input(""))
L = []
li = []
for i in range(N):
string =raw_input("")
check(string,L,li)