a[:] creates a shallow copy of the list.
You can use the copy.deepcopy() function to recursively copy the objects, or use a list comprehension:
b = [el[:] for el in a]
This creates a new list object with shallow copies of the nested list objects in a.