Python 从元组的分组列表中列出同一元素的所有索引
我正在制作一个脚本,将像素艺术转换为体素艺术。我有一个图像,并创建了一个分组列表,每个像素的RGBA值作为元组Python 从元组的分组列表中列出同一元素的所有索引,python,blender,Python,Blender,我正在制作一个脚本,将像素艺术转换为体素艺术。我有一个图像,并创建了一个分组列表,每个像素的RGBA值作为元组 RGBA_list = list(img.pixels) gl = [RGBA_list[ipx] for ipx in range(0, len(RGBA_list), 4)] 这是针对像素艺术的,所以许多颜色都是完全相同的,并且有少数独特的颜色。有没有办法获得每种颜色的多个索引列表 或者更好的措辞:获取图像中的每种颜色,然后针对每种颜色从该颜色的分组列表中获取索引列表您
RGBA_list = list(img.pixels)
gl = [RGBA_list[ipx] for ipx in range(0, len(RGBA_list), 4)]
这是针对像素艺术的,所以许多颜色都是完全相同的,并且有少数独特的颜色。有没有办法获得每种颜色的多个索引列表
或者更好的措辞:获取图像中的每种颜色,然后针对每种颜色从该颜色的分组列表中获取索引列表您有一个具有重复值的列表,并且您希望将其转换为值->索引列表,索引列表出现在图中。你可以利用。(另一种方法是使用setdefault,但defaultdict使其更简单、更干净。)
请参见下面的示例:
>>> info_list = [random.randint(1,5) for x in range(100)]
>>> info_list
[4, 5, 2, 2, 4, 3, 3, 1, 2, 4, 4, 2, 3, 1, 2, 3, 1, 4, 4, 2, 1, 1, 3, 3, 2, 1, 4, 4, 1, 5, 2, 2, 3, 5, 1, 4, 1, 4, 1, 3, 3, 2, 3, 2, 5, 4, 5, 3, 4, 4, 3, 2, 3, 2, 1, 2, 2, 4, 4, 1, 5, 2, 1, 1, 2, 3, 4, 5, 3, 4, 4, 3, 4, 1, 3, 4, 2, 1, 5, 3, 4, 3, 3, 5, 2, 2, 4, 5, 2, 2, 1, 5, 4, 5, 5, 1, 5, 3, 2, 2]
>>> from collections import defaultdict
>>> info_dict = defaultdict(list)
>>> for i, x in enumerate(info_list):
... info_dict[x].append(i)
...
>>> info_dict.keys()
dict_keys([4, 5, 2, 3, 1])
>>> info_dict[1]
[7, 13, 16, 20, 21, 25, 28, 34, 36, 38, 54, 59, 62, 63, 73, 77, 90, 95]
欢迎来到堆栈溢出!请考虑添加一个你的问题,因为它使它更容易回答它。例如,您可以制作一个示例
RGBA_列表
,并向我们展示您期望的输出。然后每个人都可以使用相同的列表进行回答。