It was already an integer you didn’t convert it when you multiply it by 2.
lst_start = lst[0:index] # slice notation
lst_end = lst[index+1:] # slice notation
lst_middle = lst[index]*2 #select an element
lst_end you are using slice notation here which needs to specify the start and the end and it will return a new array with this slice.
lst_middle = lst[index] you have just selected an element from the array, you didn’t use the slice notation. And, that’s why it just returns the selected element to you with its data type, and because this element was a number,
lst[index] returns a number.
If you want to use slice notation with the
lst_middle to return just an array with one element, you can:
lst_middle = lst[index:index+1] #returns a list with one element!
# now it's a list with one element [element] to select it use 
lst_middle = lst_middle * 2 #double this element
now you have a list so, you can return the concentrate directly
return lst_start + lst_middle + lst_end
or you can leave
lst_middle as a number and double it then make a list with this element as I mentioned in the first comment
# make a list with only one element [lst_middle]
return lst_start + [lst_middle] + lst_end
and as @codeneutrino mentioned,
so you can’t use
list(lst_middle). also as he mentioned you can use .apend() to make a new list instead of concatenating lists. choose whatever you want.