I think this is simpler with numpy arrays:
```
if isinstance(other, galsim.Bandpass):
    wave_list = numpy.union1d(wave_list, other.wave_list)
wave_list = wave_list[numpy.logical_and(wave_list >= blue_limit, wave_list <= red_limit)]
```
No need for set or the subsequent sort.