Python 为什么pop()和del()没有索引问题?请把它修好

Python 为什么pop()和del()没有索引问题?请把它修好,python,list,indexing,Python,List,Indexing,样本列表:[“红色”、“绿色”、“白色”、“黑色”、“粉色”、“黄色”] 预期输出:[“绿色”、“白色”、“黑色”] 所以我试着用remove,pop,del 但在索引方面也有同样的问题。它将“红色”作为[0]索引,但跳过“绿色”并将“白色”作为[1]索引,其中“绿色”应为[1] 这是我写的 del List[0] del List[4] del List[5] print(List) 我得到了这个错误: del List[5] IndexError: list assignment i

样本列表:[“红色”、“绿色”、“白色”、“黑色”、“粉色”、“黄色”]

预期输出:[“绿色”、“白色”、“黑色”]

所以我试着用remove,pop,del 但在索引方面也有同样的问题。它将“红色”作为[0]索引,但跳过“绿色”并将“白色”作为[1]索引,其中“绿色”应为[1]

这是我写的

del List[0]

del List[4]

del List[5]

print(List)
我得到了这个错误:

del List[5]
IndexError: list assignment index out of range
但是当我写这个的时候

del List[0]

del List[4]

del List[3]

print(List)
我得到了期望的结果。为什么?

你是从这个开始的 列表=[“红色”、“绿色”、“白色”、“黑色”、“粉色”、“黄色”]

关于-->删除列表[0] “红色”被删除

您的列表是List=[“绿色”、“白色”、“黑色”、“粉色”、“黄色”] 索引是0,1,2,3,4

on--del列表[4]

“黄色”被删除 现在列表=[‘绿色’、‘白色’、‘黑色’、‘粉色’] 索引0、1、2、3

on--del列表[5] 您正在尝试访问不存在的索引,因为现在列表的索引从0到3,最初:

List= ['Red', 'Green', 'White','Black', 'Pink', 'Yellow']
删除列表[0]

给出:

List= ['Green', 'White','Black', 'Pink', 'Yellow']
List= ['Green', 'White','Black', 'Pink']
删除列表[4]

给出:

List= ['Green', 'White','Black', 'Pink', 'Yellow']
List= ['Green', 'White','Black', 'Pink']
删除列表[5]


抛出错误。由于列表的长度仅为4。

每次删除元素时,新列表中每个元素的索引号都会发生变化

List= ['Red', 'Green', 'White','Black', 'Pink', 'Yellow']

del List[0]
现在的列表是[‘绿色’、‘白色’、‘黑色’、‘粉色’、‘黄色’]

现在“绿色”是索引0,“黄色”是索引4

del List[4]
现在“黄色”被删除

由于现在没有索引为5的元素,下面的代码将产生错误

del List[5]

让我们逐行记录您的代码:

代码1:

代码2


请阅读你的问题,它的格式是完全混乱。此外,如果您需要代码方面的帮助,您需要提取一个示例并将其作为问题的一部分提供。作为一个新用户,还需要阅读。这里有一个提示:在执行del list[0]之前,列表中有多少元素?删除列表[0]后,列表中有多少元素?在执行删除列表[0]之前,“粉红色”的位置是什么?删除列表[0]后,“粉红色”的位置是什么?如果它解决了您的问题,您应该接受答案。否则,您的问题将保留在等待更多答案的队列中。此外,如果你发现有任何答案对你有帮助,你应该对它进行投票。如果你知道你想删除原始列表中的哪些索引,一个解决办法是从最高到最低删除它们。那么,当索引更改时,您关心的所有项目都不会移动。