I use a modified "python" method -- I use a "python" type hose running from my tanks to my sink to "move" most of the water.
But - since the "normal" python method wastes some water, and my total volume runs in the hundreds of gallons (and I like to change water frequently) - I didn't like the wasted water.
So - I put a pump on the end of the python hose (the end that goes in the tank) and use it to pump the "dirty" water from the tank to the pump (my tanks are either a) planted or b) have just a thin layer of sand on the bottom, so I don't need to "vac" )
For some of my tanks, I refill the tank using the python hose as well - I adjust the temp at the tap, then run the water to the tank, and add enough Prime to treat the whole tank (ie a 50g dose for a 50g tank).
However, a number of my tanks need harder water than what my town supply provides (our water has almost zero KH). For those tanks, I premix my water in a 40g rubbermade barrel. I fill the barrel up, put a pump and heater in there, and (depending on the tank) buffers and/or salt. The submersible pump has about 5 feet of hose and a "j tube" attached to it. Once the water is ready, I use it as replacement water. The hose and j-tube allow me to pump the water up into any of my tanks quickly and easily.
Its new, its improved (its still a work-in-progress)