2015-06-15 69 views
3

我想插入一個項目列表中的列表。我想知道是否有人可以給我看。如何插入python嵌套列表

list5 = [[], [(1,2,3,4), 2, 5]] 
print("1. list5", list5) 
list5.insert(0, (2,5,6,8)) 
print("2. list5", list5) 

Output: 
1. list5 [[], [(1, 2, 3, 4), 2, 5]] 
2. list5 [(2, 5, 6, 8), [], [(1, 2, 3, 4), 2, 5]] 

我想:

2. list5 [[(2, 5, 6, 8)], [(1, 2, 3, 4), 2, 5]] 

字典不幸將無法正常工作。

回答

3

問題是你試圖插入列表的第一個元素,list5這是不正確的。您必須訪問列表的第一個元素並將其插入到列表中。這可以用下面的代碼

>>> list5 = [[], [(1,2,3,4), 2, 5]] 
>>> print("1. list5", list5) 
1. list5 [[], [(1, 2, 3, 4), 2, 5]] 
>>> list5[0].insert(0, (2,5,6,8)) 
>>> print("2. list5", list5) 
2. list5 [[(2, 5, 6, 8)], [(1, 2, 3, 4), 2, 5]] 
+0

太好了。非常感謝。 – matt2605

+0

很高興能爲你提供一些幫助,兩次:P –

+0

是的,最後一個是box = Box()。 – matt2605

0

問題做這裏是insert,它被應用到列表中創建一個新的項目。所以

>>> list5 = [[], [(1,2,3,4), 2, 5]] 

創建一個包含兩個元素,其中第一個碰巧是零個元素的列表清單:

>>> list5[0] 
## [] 

如果你再調用list5.insert(0, foo),會發生什麼是foo被壓入在位置0處的列表以及其他所有東西都會被推動(即,具有0或更大索引的列表的元素各自使其索引增加1)。

你實際上想要做的是在list5的位置0的空列表中插入一個元素。因此,您需要訪問該列表,然後調用添加元素的方法。無論是

>>> list5[0].append((2,5,6,8)) 

>>> list5[0].insert(0, (2,5,6,8)) 

會做的伎倆。