How to select vertices by their color? I know this has been asked, but the answer form here: https://gist.github.com/tamask/2590850 doesn't work for me. I get an &quot;out of range error&quot; in the first loop.
I tried modifying a solution from here: Vertices—loop indices vs. unique indices but nothing.
Here's the code:
import bpy
from collections import defaultdict

obj = bpy.context.active_object
col = obj.data.vertex_colors.active
polygons = obj.data.polygons

color = (0, 1, 0, 0)

vertex_map = defaultdict(list)

for poly in polygons:
    for v_ix, l_ix in zip(poly.vertices, poly.loop_indices):
        vertex_map[v_ix].append(l_ix)
  
for v_ix, l_ixs in vertex_map.items():
    for l_ix in l_ixs:

        if col.data[l_ix].color == color:
            
            obj.data.vertices[v_ix].select = True

I would really appreaciate any help.
It is a comparison issue.
col.data[l_ix].color == color

You can:
from mathutils import Vector

color = Vector((0, 1, 0, 0))

Then compare with:
color == Vector(col.data[l_ix].color)

Alternatively, to avoid rounding issues, define an epsilon and compare using:
(color - Vector(col.data[l_ix].color)).length_squared &lt; some_epsilon