s = "Theses are the words I want to reverse"
" ".join([x[::-1] for x in s.split()])
Lets take a look at this rather terse solution from the inside out.
The variable modifier in the list comp x[::-1] is probably the strangest part of this one line kata solution. The third argument in the index is the stride; That is, the number of elements to step when extracting values. A negative number indicates that you step in reverse order, so using a -3 instead of -1 would give me every third character of each reversed word.
str.split() with no arguments splits on spaces, giving us a list of words
the list comp then iterates over the words, applying our negative stride extraction trick to reverse them
Finally, str.join concatenates the words together into a single string, using the calling string as a separator. Personally, I'd expect that method to be on the list, rather than str, but so it is.
And the result is:
'sesehT era eht sdrow I tnaw ot esrever'