我正在閱讀“Fluent Python”一書,其中有一節討論了如何分配給切片。例如:
l = list(range(10))
l[2:5] = [20, 30]
#l is [0, 1, 20, 30, 5, 6, 7, 8, 9]
我嘗試使用一些自定義示例測驗此功能,但以下內容給了我一個錯誤:
l = list(range(10))
l[::-1] = [10, 1] #ValueError: attempt to assign sequence of size 2 to extended slice of size 10
print(l)
但這有效:
l = list(range(10))
l = l[::-1]
l[:] = [10, 1]
print(l) #[10, 1]
為什么我收到錯誤?我想和最后一個單元格做的不是一樣嗎?
謝謝
uj5u.com熱心網友回復:
當您使用 1 以外的步驟(例如l[::-1], l[2:20:3])時,下標對應于特定元素索引的串列,因此您需要提供相同數量的元素。
當您不指定步驟(或步驟為 1)時,下標對應于串列中元素的連續范圍,因此可以用不同數量的元素替換。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/396521.html
下一篇:如何獲得串列串列的列式最小值?
