I'm not sure i understand why it's written this way but here's what it does.
`a[::-1]` returns the list `a` in reverse order (`::` means reverse, `-1` means include the zeroth element)
`int()` casts the argument as an integer
`str()` casts its argument as a string
However, the call `str(int(a[::-1]))` fails, because `int()` expects a string, a bytes-like object or a number as its argument, not a list