【问题标题】:list assignment index out of range when trying to remove an element by index [duplicate]尝试按索引删除元素时列表分配索引超出范围[重复]
【发布时间】:2018-01-23 17:02:08
【问题描述】:

我在 Python 中有以下列表:

x = [[1,2],[3,4],[5,'inf'],[6,7],['nan',10]]

我还有以下索引列表:

idx = [2,4]

我正在尝试从列表 x 中删除与idx 中的索引值相对应的元素。为此,我做了以下工作:

for i in idx:
    del x[i]

然而我得到了以下错误:

IndexError: list assignment index out of range

我该如何解决这个问题?

【问题讨论】:

标签: python list indexing delete-operator del


【解决方案1】:

您要删除索引 2,然后是索引 4。索引 4 是最后一项。当你删除索引 2 时,最后一个索引变为索引 3。因此访问索引 4 会导致错误。

您可能希望反向删除索引以避免这种情况。

【讨论】:

  • @Willem Van Onsem 不知道你是否投了反对票,但他调用的是索引,而不是元素。
猜你喜欢
  • 1970-01-01
  • 2017-07-25
  • 2018-09-05
  • 1970-01-01
  • 2012-06-23
  • 1970-01-01
  • 2012-05-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多