Пожалуйста, рассмотрите два фрагмента кода (обратите внимание на различие между строкой и целым числом):
a = []
a[:] = '1'
и
a = []
a[:] = 1
В первом случае a есть ['1']. Во втором я получаю ошибку TypeError: can only assign an iterable. Почему использование '1' over 1 здесь принципиально иное?