我做了相當多的細讀,但對於我想要了解的概念,我沒有明確的答案。使用列表中的字符串進行切片分配
在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']
誰能解釋這是爲什麼,到底是什麼? 我假設,當我最初沒有將它放入「列表」中時,它會將字符串分解爲單個字符,以便將其存儲爲對這些字符的引用,而不是對單個字符串的引用...
但我不完全確定。
我認爲它滑稽你拿了一塊蛋糕:) – corn3lius
你的最後一個例子'L1 [0:4] = [ '蛋糕']''收益率[ '蛋糕']'對我來說,不python 2.6上的['cake','brownies','cookies']'' - 還要注意,因爲你已經有5個upvotes,顯然你問了一個很好的問題:) – mgilson
啊,最後一個例子是關於已經被修改的代碼 - 而不是使用:'L1 = [ '蛋糕','布朗尼','餅乾'],我正在執行最後一個例子'L1 = ['c','a','k','e','布朗尼','餅乾']' 。 – Noc