У меня есть переменная, представляющая BMP изображение со следующей структурой:изменения суб-подсписок в кортежей в Python
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]
, как я, хотя, это должно быть быстрее, но, конечно, выше с треском проваливается.
Так есть кто-нибудь, кто мог бы помочь мне конвертировать мои подсписки из пикс в кортежах самый быстрый способ возможно? Заранее спасибо.
элегантный или короткие = быстрее. – KurzedMetal