Based on the title of your question, you don't want to change funct itself and you don't want to convert the output of funct into a string. If you want to change a number into a string you need to change the values inside the list output by funct. The problem is that you're turning the repr of the list itself into a string, but not casting the value in the list:
>>> repr([5])
'[5]'
>>> repr(["5"])
"['5']"
You actually want to cast the value in the list:
>>> repr(list(map(str, [5]))) # say `funct(3)` for example
"['5']"
>>> repr(list(str(i) for i in [5]))
"['5']"
Now, if you really just want to turn the output of funct into a string, you're already doing that. Python's just not printing quotes around the string representation of a list because it's printing it.
>>> repr([5]); print([5])
'[5]'
[5]
3?["3"]?printcallsstrimplicitly, and the second and thirdprints are doing exactly the same. The fourthprintusesrepr, which happens to be equivalent tostrfor a list with integers. If you only wantfunctto return2+4, userad = (2+y)or justrad = 2+y, since[2+y]creates a list with one element.str(a)is a string, what's the problem?a[0]yields"3"