如何插入到python嵌套列表中

时间:2015-06-15 03:53:46

标签: python list list-comprehension

我想将一个项目插入列表中的列表中。我想知道是否有人可以给我看。

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]]

很遗憾,一本字典不起作用。

2 个答案:

答案 0 :(得分:4)

问题是您尝试插入列表的第一个元素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]]

答案 1 :(得分:0)

此处的问题是insert会在列表中创建 new 项目。所以

>>> 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) )

会做到这一点。