2012-11-22 34 views

回答

1

可以使用insert方法,它接受一個索引位置作爲第一個參數和項目可以插入作爲第二:

In [1]: l = ['a', 'b'] 

In [2]: l.insert(1, 1234) 

In [3]: l 
Out[3]: ['a', 1234, 'b'] 

注意l是這裏的名單 - 要避免使用建-in Python關鍵字(如list)作爲變量名稱,因爲它最終會導致你(和其他人閱讀你的代碼:))令人頭痛。至於你爲什麼不工作 - 當你分配給一個列表的一部分(例如l[1:1])時,等式右邊的部分需要是可迭代的(即你可以迭代的東西,比如另一個列表,一個字符串等)。然後,它使得可迭代元素的每個元素都在主列表中,從您指定的位置開始。當你說str(1234)時,你得到'1234',當你將它分配給列表的切片時,它將分解爲['1', '2', '3', '4']

如果你想完成使用切片分配的插入,你可以做這樣的事情(注意數字是如何包裹在列表括號中的,它是一個單元列表),但這僅僅是一個例子到底是怎麼回事 - insert具有更好的性能:

In [18]: l = ['a', 'b'] 

In [19]: l[1:] = [1234] + l[1:] 

In [20]: l 
Out[20]: ['a', 1234, 'b'] 

該命令將開始於'b'並與名單[1234]加上開始於'b'原始列表的部分替換它列表中的切片,這導致基本上是一樣的東西。

相關問題