Is there a way to get from Florence to Lucerne without changing trains?
No, you will have at a minimum two changes, at Milan and Arth-Goldau if you go the usual route. But when are you traveling? This route has been blocked by a landslide and theynare taking passengers around the slide area by bus, so there are additional changes involved. That may continue for another few weeks. In that event, it is faster to go the other route, from Milan via Brig and Spiez.
You can use the Swiss train site (www.sbb.ch) to check schedules and routes. You will need to change trains at least twice. Allow yourself enough time to change, consider how much luggage you have. But Swiss trains particularly are very reliable and on time, so it should not be a big issue to change trains.