我们的代码中列表索引超出范围的含义是什么?

时间:2013-12-05 16:06:00

标签: python

我们正在为学校的编程课程制作温度传感器,我们遇到了这一特定代码行的问题:

devicefile= devicelist[0] + '/w1_slave'

IndexError:列表索引超出范围

我们从这些网站获取了代码: http://www.whiskeytangohotel.com/2013/07/raspberry-pi-charting-ambient-vs.html http://raspberrywebserver.com/gpio/connecting-a-temperature-sensor-to-gpio.html

2 个答案:

答案 0 :(得分:3)

这意味着列表devicelist少于1个元素(devicelist[0]是列表中的第一个元素)。 IOW:这是一个空列表。

有关Python中列表的更多信息,请参阅教程http://docs.python.org/2/tutorial/introduction.html#lists和参考资料库http://docs.python.org/2/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange

答案 1 :(得分:1)

IndexError表示您尝试按索引访问某些内容,但该索引超出了容器的范围,例如

>>> l = [0, 1, 2]
>>> l[2]
2
>>> l[3]
...
IndexError: list index out of range

如果容器没有第0个元素,则它必须为空:

>>> l = []
>>> l[0]
...
IndexError: list index out of range

您需要调查列表为空的原因,但是对于更强大的代码,您可以在尝试访问该元素之前明确检查:

if len(l) > 0:
    # access l[0]

或者,简单地说:

if l:
    # access l[0]