I wonder if this is too trivial for appearing here but I struggle for weeks before realizing that you can easily assign a color table to a node in python
# First access the color table by name, the name is the one that appears in the combobox
PETnodeColor = slicer.util.getFirstNodeByName('PET-Heat')
# Now you get your node display, the node is any vtkMRMLScalarVolumeNode that you have already loaded
displaynode = node.GetScalarVolumeDisplayNode()
# Finally the assignment
displaynode.SetAndObserveColorNodeID(PETnodeColor.GetID())
This does not even appear in the documentation nor the wiki and is really hard to find