Hackerrank显示IndexError:从python中的空列表中弹出

时间:2019-09-16 05:24:06

标签: python-3.x

我正在使用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]

2 个答案:

答案 0 :(得分:0)

您可能需要在pop之前检查列表是否为空。如果列表为空,则pop没有元素。可以使用len进行检查。

答案 1 :(得分:0)

在空pop()上尝试list时会发生这种情况
由于存在测试用例,它可以在您的本地计算机上运行,​​并且不能在 Hackerrank 上运行。
它们具有隐藏的测试用例,用于在其上测试pop()功能一个空列表。

在从列表中弹出元素的同时,在代码中添加简单的验证。


if e == 'pop':
  if list:
    list.pop()

if list:基本上检查列表是否为空。
如果列表为空,则返回False,反之亦然。