当前位置: 首页 > 面试题库 >

为什么Python返回负列表索引?

胥宏义
2023-03-14
问题内容

如果我有包含10个元素的列表:

>>> l = [1,2,3,4,5,6,7,8,9,0]

为什么l [10]返回IndexError,而l [-1]返回0?

>>> l[10]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> l[0]
1
>>> l[-1]
0
>>> l[-2]
9

如果列表中没有以前的元素,我想做的就是抛出一个错误。


问题答案:

在Python中,负列表索引表示从列表右边开始计数的项(即的l[-n]简写形式l[len(l)-n])。

如果发现需要负索引来指示错误,那么您可以简单地检查这种情况并亲自引发异常(或在那里进行处理):

index = get_some_index()
if index < 0:
    raise IndexError("negative list indices are considered out of range")
do_something(l[index])


 类似资料:
  • 问题内容: 我已经能够验证结果是否为。但是,它不返回列表。为什么? 问题答案: 对列表进行适当排序,即不返回新列表。写吧

  • 目标是修改对象中的元素,因此我的思维过程是首先获得对象的索引,然后使用所述索引将我指向要修改的正确对象 我正在使用对象中的name元素搜索对象,但每当我打印索引以确保它收集到正确的索引时,对于尝试的所有名称,我总是得到-1,即使对象存在与我搜索的名称相同的名称。 项目类 项目类别

  • 问题内容: 为什么要用返回? 我如何获得改组后的值而不是? 问题答案: 更改x列表到位。 就地更改结构的方法通常返回None,而不是修改后的数据结构。 如果要基于现有列表创建新的随机混排列表,并按顺序保留现有列表,则可以使用输入的完整长度: 你还可以将用于排序键: 但这会调用排序(操作),而采样到输入长度仅需要O(N)操作(与所使用的过程相同,即从收缩池中换出随机值)。 演示:

  • 为什么numeric_limits::min返回一个负值为int,但正值为例如浮动和双? 输出: 参考文献: 返回可由数字类型T表示的最小有限值。 对于具有反规范化的浮点类型,min返回最小的正规范化值。请注意,这种行为可能是意外的,特别是与整型类型的min行为相比。要查找没有值小于它的值,请使用。 min仅对有界类型和无界无符号类型有意义,也就是说,表示无穷多个负值的类型没有意义的最小值。

  • 我的代码是用Python3编写的,目的是打印回文。它应该遍历2个3位数字的所有回文积,如下所示: 注意注释掉的打印。当这还在的时候,本该打印出来的回文都出来了。当我运行代码时,没有语句,控制台只打印出“none”。 据我所知,我的逻辑是正确的,那么为什么会发生这种情况呢?编辑:同样,当我对我的列表进行逆序排序时,99999排在第一位。我认为这是因为python看着连续的9并认为它是最大的。但是,有

  • 我已经能够验证是否会产生排序的。但是,它不会返回列表。为什么?