Just note that the original post here is from February and was solved at the time.
Brackets used like this are used to create list literals, a = 3 assigns integer 3 to the name a but a = [3] assigns a list (which itself contains integer 3) to this name instead.
As for why there are extra brackets in your output at present it’s because you have nested list objects (an element of your list is itself a list).
Bear in mind that your list slice always returns a list (even if it’s an empty one). If you then .append that list to another list it does just that. You wind up with an element of your first list that is itself a list.
A quick example-
a = [3] # a list
b = [1, 2, 3]
b.append(a)
print(b)
Out: [1, 2, 3, [3]] # we've put that list object inside our list
Perhaps reconsider your code (what about concatenation?) and its order so that you wind up with a single list of integer values.