Этот mylist[3][1][4][1] = thing
такой же, как этот:
tmp = mylist[3][1][4]
tmp[1] = thing
Вы можете использовать этот факт следующим образом:
def setitem(the_list, indices: tuple, value):
try:
index, = indices
except ValueError:
# there's more than one index - dig one dimension deeper
setitem(the_list[indices[0]], indices[1:], value)
else:
# one index left - use it in assignment
the_list[index] = value
Затем позвоните:
mylist[3][1][4][1] = 'y'
setitem(mylist, (3, 1, 4, 1), 'y')