我有一个代表具有以下结构的 bmp 图像的变量:
image=[line1, line2, ... linen]
line=[pix1,pix2,...,pixn]
pix=[r,g,b]
因此,例如这个变量的内容可能看起来像
[[[0,0,0],[1,0,1],[2,4,5]],[[3,4,5],[1,7,4],[1,3,5]],[[2,4,2],[1,6,7],[1,9,0]]]
现在我想将每个行项的像素列表转换为元组,所以内容会变成这样:
[[(0,0,0),(1,0,1),(2,4,5)],[(3,4,5),(1,7,4),(1,3,5)],[(2,4,2),(1,6,7),(1,9,0)]]
我可以这样做
for i in range(0,len(image)-1):
for j in range(0,len(image[0])-1):
image[i][j] = tuple(image[i][j])
但这似乎不是最“pythonesque”的方式,我需要最快的计算方法,上面似乎远非如此。
我试过了
[tuple(pix) for pix in line for line in image]
因为我虽然这应该更快,但当然以上失败了。
那么有没有人可以帮助我以最快的方式将我的 pix 子列表转换为元组?提前致谢。