Inverting Vertex Colors?
You can invert the colors of a vertex paint with python. The algorithm to invert the color is as follows:

new_color = 1.0 - current_color

Here is the code to invert the color of a vertex paint. Note that you should substitute the name Cube to the name of your mesh. Same goes for the vertex paint layer Col.

import bpy
import random

# get and store the object in object mode
obj = bpy.data.objects["Cube"]
mesh = obj.data

# set active vertex paint layer
color_layer = mesh.vertex_colors["Col"]

v = 0  # current vertex in loop

# iterate over the verices and invert their color
for poly in mesh.polygons:
    for idx in poly.loop_indices:
        col = [(1 - color_layer.data[v].color[i]) for i in range(3)]
        color_layer.data[v].color = col
        v += 1

# We have to refresh Vertex Paint mode to see the changes
bpy.ops.object.mode_set(mode='OBJECT')
bpy.ops.object.mode_set(mode='VERTEX_PAINT')




Final Result



The advantage of this method is that you do not have to constantly invert at rendertime.