Python 3.x 从列表到元组列表RGB python
我有一张这样的清单Python 3.x 从列表到元组列表RGB python,python-3.x,list,rgb,Python 3.x,List,Rgb,我有一张这样的清单 [255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 127, 0, 255, 127, 0, 255, 127, 0, 255, 127, 0, 255, 127, 0, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255] 转换为3对(rgb)的最佳方式是什么,内部是元组 pixel = [(255
[255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 127, 0, 255, 127, 0, 255, 127, 0, 255, 127, 0, 255, 127, 0, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255]
转换为3对(rgb)的最佳方式是什么,内部是元组
pixel = [(255,0,0),(255,0,0),(255,0,0),(255,0,0),(127,0,255),(127,0,255),(127,0,255),(127,0,255),(127,0,255),(0,127,255),(0,127,255),(0,127,255),(0,127,255),(0,127,255),(0,127,255),(0,127,255)]
在这种情况下,使用
numpy
非常简单:
import numpy as np
pixels = [255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 127, 0, 255, 127, 0, 255, 127, 0, 255, 127, 0, 255, 127, 0, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255]
np_pixels = np.array(pixels).reshape((-1, 3))
print(np_pixels)
输出:
>>> print(np_pixels)
[[255 0 0]
[255 0 0]
[255 0 0]
[255 0 0]
[127 0 255]
[127 0 255]
[127 0 255]
[127 0 255]
[127 0 255]
[ 0 127 255]
[ 0 127 255]
[ 0 127 255]
[ 0 127 255]
[ 0 127 255]
[ 0 127 255]
[ 0 127 255]]
如果您坚持让它们成为元组,您可以在以后再这样做:
np_pixels = [tuple(row) for row in np_pixels]
输出:
[(255, 0, 0), (255, 0, 0), (255, 0, 0), (255, 0, 0), (127, 0, 255), (127, 0, 255), (127, 0, 255), (127, 0, 255), (127, 0, 255), (0, 127, 255), (0, 127, 255), (0, 127, 255), (0, 127, 255), (0, 127, 255), (0, 127, 255), (0, 127, 255)]
在这种情况下,使用
numpy
非常简单:
import numpy as np
pixels = [255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 127, 0, 255, 127, 0, 255, 127, 0, 255, 127, 0, 255, 127, 0, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255]
np_pixels = np.array(pixels).reshape((-1, 3))
print(np_pixels)
输出:
>>> print(np_pixels)
[[255 0 0]
[255 0 0]
[255 0 0]
[255 0 0]
[127 0 255]
[127 0 255]
[127 0 255]
[127 0 255]
[127 0 255]
[ 0 127 255]
[ 0 127 255]
[ 0 127 255]
[ 0 127 255]
[ 0 127 255]
[ 0 127 255]
[ 0 127 255]]
如果您坚持让它们成为元组,您可以在以后再这样做:
np_pixels = [tuple(row) for row in np_pixels]
输出:
[(255, 0, 0), (255, 0, 0), (255, 0, 0), (255, 0, 0), (127, 0, 255), (127, 0, 255), (127, 0, 255), (127, 0, 255), (127, 0, 255), (0, 127, 255), (0, 127, 255), (0, 127, 255), (0, 127, 255), (0, 127, 255), (0, 127, 255), (0, 127, 255)]
您只需使用iter()即可,如下所示:
RGB = [255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 127, 0, 255, 127, 0, 255, 127, 0, 255, 127, 0, 255, 127, 0, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255]
it = iter(RGB)
print(list(zip(it,it,it)))
如果您想要在元组中包含一组N个元素,只需使用zip(it*N)即可获得元组中N个元素。您只需使用iter(),如下所示:
RGB = [255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 127, 0, 255, 127, 0, 255, 127, 0, 255, 127, 0, 255, 127, 0, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255, 0, 127, 255]
it = iter(RGB)
print(list(zip(it,it,it)))
如果您想要在元组中包含一组N个元素,只需使用zip(it*N),就可以得到元组中N个元素。这是否回答了您的问题?这回答了你的问题吗?你知道哪条路更快吗?使用for循环或Iter因为我的列表会很长你知道哪种方式更快吗?使用for循环或iter因为我的列表将非常长