如何插入 python 嵌套列表

How to insert into python nested list

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

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

不幸的是,字典不起作用。

问题是您试图将 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]]

这里的问题是 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) )

会成功的。

def add_new_item(l1):

l1[2][2].append(700)
print(l1)

l1 = [10, 20, [300, 400, [5000, 6000], 500], 30, 40]

add_new_item(l1)