可以在python列表中跳过索引吗?

时间:2018-03-21 15:54:15

标签: python list

假设我有一个包含len(list) == 5

的列表

我能确定list[4]存在吗?

或者一个项目可能会被删除,然后列表会有索引0,1,2,3,5,其长度为5但没有索引4?

5 个答案:

答案 0 :(得分:1)

  

我可以确定列表[4]是否存在?

是的,你可以。如果len(list)返回5,那么您100%确定列表中有5个元素。

  

或者一个项目可能会被删除,然后列表会有索引0,1,2,3,5,其长度为5但没有索引4?

同样,如果len(list)返回5,那么列表中有5个元素。因为列表在python中是从零开始的,所以list [4]将是列表中的最后一个元素

以下是python documentation

的引用
  

操作:s [i]

     

结果:s的项目

     

备注:原产地0

你也可以在REPL(python语言shell)中尝试它,正如Jim在answer中所展示的那样。如果您创建了包含5个元素的列表,len将返回5。如果删除列表中的任何元素(例如第4个元素),则len现在将返回4,您将通过使用来访问最后一个元素(删除前的第5个元素) list[4]

答案 1 :(得分:0)

是的,如果len(lst) == x,那么所有指数都会达到x - 1

查看删除项目时会发生什么。

lst = [1, 2, 3]

len(lst) # 3

del lst[1]

len(lst) # 2

删除后,长度减少。

答案 2 :(得分:0)

当您删除特定索引处的项目时,其余数据将返回到该位置。

>>> l = ['a', 'b', 'c', 'd', 'e', 'f']
>>> len(l)
6
>>> l[4]
'e'

>>> del l[4]
>>> len(l)
5
>>> l[4]
'f'

答案 3 :(得分:0)

当删除列表中的元素时,索引会向下移动一个。

索引只是位于列表中的元素。

如果您有1,2,3,4,5的列表并删除list[3],那么您现在有1,2,3,5,现在list[3] == 5

答案 4 :(得分:0)

Python中的列表是一个用数组实现的列表,它不仅仅是一个数组。如果您在数据结构上学习一些课程,您可以了解更多相关信息,但结果是删除列表条目将通过更改删除项目之后的项目的所有索引来解决。

喜欢这个

>>> x = [0, 1, 2, 3]
>>> del x[2]
>>> x
[0, 2, 3]
>>> x[2]
3