The segments property of SegmentationLayer just specifies the set of selected segment ids --- as shown in the "Seg" tab of the layer side panel.
Currently an explicit list of segments, with associated labels and other properties, is only supported through the precomputed datasource, not through the Python datasource. It could be supported easily enough, though.
However, there is also a simple hack you could use as a workaround: specify
segment_query = ', '.join(str(x) for x in segment_list)
as an additional property of the SegmentationLayer. I'm not sure exactly how many segments that will accommodate before you run into performance problems, but probably a decent number...