Python 我试图创建一个图像,同时使用一个充满RGB值的列表

Python 我试图创建一个图像,同时使用一个充满RGB值的列表,python,arrays,list,numpy,colors,Python,Arrays,List,Numpy,Colors,我试图创建一个图像使用的RGB值,其中每一个都是一个像素,我也使用numpy,所以我可以通过将其转换为多维数组来编辑列表;但是,当我将列表转换为数组时,包含RGB值的元组将成为包含RGB值的列表,当我完成编辑数组并将其重新转换为列表时,RGB值将位于列表中而不是元组中,因此不能用作像素。以下是我的代码: from PIL import Image import numpy liste=[(134,234,200),(234,0,255)] new_array = numpy.array(list

我试图创建一个图像使用的RGB值,其中每一个都是一个像素,我也使用numpy,所以我可以通过将其转换为多维数组来编辑列表;但是,当我将列表转换为数组时,包含RGB值的元组将成为包含RGB值的列表,当我完成编辑数组并将其重新转换为列表时,RGB值将位于列表中而不是元组中,因此不能用作像素。以下是我的代码:

from PIL import Image
import numpy
liste=[(134,234,200),(234,0,255)]
new_array = numpy.array(liste)
final_list=new_array.tolist()
im = Image.new("RGB",(10,10))
im.putdata(final_list)
im.show()
最后的列表如下:
[[1342342000],[2342055]
同时,我需要的结果是:
[(134234200),(234,0255)]
(或列表)

您可以使用a将列表列表转换为元组列表,如:

>>> l = [[1,2,3], [2,3,4], [3,4,5]]
>>> l = [tuple(i) for i in l]
>>> l
[(1, 2, 3), (2, 3, 4), (3, 4, 5)]

使用
map

from time import clock

spin = 200000

t0 = clock()
for c in range(spin):
    li = [[134, 234, 200], [234, 0, 255], [122,12,45], [210,50,87], [3,150,250],
          [100,200,0], [230,44,78], [35,78,40], [122,124,231], [251,98,13]]
    li = [tuple(e) for e in li]
t1 = clock() - t0
print("%.3f" % t1,"  li = [tuple(e) for e in li]   bgporter")



t0 = clock()
for i in range(spin):
    li = [[134, 234, 200], [234, 0, 255], [122,12,45], [210,50,87], [3,150,250],
          [100,200,0], [230,44,78], [35,78,40], [122,124,231], [251,98,13]]
    li = list(map(tuple,li))
t2 = clock() - t0
print("%.3f" % t2,"  li = list(map(tuple,li))      eyquem")

print("   %.3f / %.3f =  %d %%" % (t2,t1,(100*t2/t1)))
结果:

1.150   li = [tuple(e) for e in li]   bgporter
0.938   li = list(map(tuple,li))      eyquem
   0.938 / 1.150 =  81 %

因为当我使用在numpy中创建的数组时,它给了我一个类型错误。