我正在使用pop
函数从列表中消除一个值。在pyCharm中,我的代码运行良好。但是,当我尝试在Hackerrank上运行此命令时,它显示了IndexError: pop from empty list
我尝试过:
list = [] //this is the list which I declare.
elif e == 'pop': //this is the else if condition which is needed.
list.pop()
这是我的代码
n = int(input())
list = []
for i in range(1,n+1):
e = input()
if e == 'insert':
j = int(input())
k = int(input())
list.insert(j,k)
elif e == 'print':
print(list)
elif e == 'remove':
j = int(input())
list.remove(j)
elif e == 'append':
j = int(input())
list.append(j)
elif e == 'sort':
list.sort()
elif e == 'pop':
list.pop()
elif e == 'reverse':
list.reverse()
我希望输出
[6, 5, 10]
[1, 5, 9, 10]
[9, 5, 1]
答案 0 :(得分:0)
您可能需要在pop
之前检查列表是否为空。如果列表为空,则pop
没有元素。可以使用len
进行检查。
答案 1 :(得分:0)
在空pop()
上尝试list
时会发生这种情况
由于存在测试用例,它可以在您的本地计算机上运行,并且不能在 Hackerrank 上运行。
它们具有隐藏的测试用例,用于在其上测试pop()
功能一个空列表。
在从列表中弹出元素的同时,在代码中添加简单的验证。
if e == 'pop':
if list:
list.pop()
if list:
基本上检查列表是否为空。
如果列表为空,则返回False
,反之亦然。