Python数组索引超出范围但在打印后工作

时间:2016-06-16 00:29:27

标签: python arrays

这是我的代码:

pixel = pixels[pixel_position * pixel_byte_width :(pixel_position + 1) * pixel_byte_width]
r = pixel[0]
g = pixel[1]
b = pixel[2]

这是错误:

line 25, in wr
g = pixel[1]
IndexError: array index out of range

现在让我说我按照我的代码执行此操作:

pixel = pixels[pixel_position * pixel_byte_width :(pixel_position + 1) * pixel_byte_width]
print(pixel)
r = pixel[0]
g = pixel[1]
b = pixel[2]

打印像素,但最终减慢了代码...发生了什么?打印后没有错误,它打印完整的东西。做len(pixel)始终打印3.任何想法?谢谢!

编辑: 我正在使用python 3 +

1 个答案:

答案 0 :(得分:0)

我不确定array对象如何需要索引,但您可以通过直接从数组中解压缩值来避免索引:

r, g, b = pixel

如果它确实包含三个元素,那么您一定要确保您的值没有任何错误。