在python中将元组列表表示为2d数组

时间:2014-02-18 16:38:02

标签: python

假设我有一个元组列表,其中包含图像中从左到右,从上到下的每个像素的RGB信息。

[(1,2,3),(2,3,4),(1,2,4),(9,2,1),(1,1,1),(3,4,5)]

假设已经知道图像的宽度和高度,有没有办法可以使用列表列表来表示图像?

例如,假设上面的元组列表代表2x3图像,image[1][2]应该给我RGB元组(3,4,5)

1 个答案:

答案 0 :(得分:2)

使用range(或xrange)中的step参数:

>>> width = 2
>>> pixels = [(1,2,3),(2,3,4),(1,2,4),(9,2,1),(1,1,1),(3,4,5)]
>>> image = [pixels[x:x+width] for x in range(0,len(pixels),width)]
>>> image
[[(1, 2, 3), (2, 3, 4)], [(1, 2, 4), (9, 2, 1)], [(1, 1, 1), (3, 4, 5)]]

它会使x增加step的值,而不是默认值,即1.如果您熟悉Java,则类似于:

for (int x=0; x<length; x = x+step)