Присвоение среза со строкой в ​​списке

Я немного просмотрел, но у меня нет определенный ответ на концепцию, которую я пытаюсь понять.

В Python, если я возьму список, например:

L1=['muffins', 'brownies','cookies']

А затем попытаюсь заменить первый указатель на объект в списке, а именно на «кексы», используя код:

L1[0:1] = 'cake'

Я получу список L1:

['c', 'a', 'k', 'e', 'brownies', 'cookies']

Но если я возьму тот же список и выполню операцию (теперь с 4 элементами торта):

L1[0:4] = ['cake'] # presumably, it's now passing the string cake within a list? (it passed into the modified list shown above)

Я получу желаемый результат:

['cake', 'brownies', 'cookies']

Может ли кто-нибудь объяснить, почему именно так? ? Я предполагаю, что когда я изначально беру торт, не находясь в «списке», он разбивает строку на отдельные символы, которые будут храниться как ссылки на эти символы, а не как одна ссылка на строку...

Но я не совсем уверен.

10
задан DoubleAyyEm 17 December 2017 в 14:11
поделиться