Python append to list of list
Python append to list of list
我有一个包含单词列表的列表。\n例如:\n
[['A','B','C'],['D'],['E']]
\n为了实现这一点,我创建了一个大小为4的空列表的列表。\n
list1=[list()] *4
\n然后逐个尝试添加元素。\n
list1[0].append('A') list1[0].append('B') list1[0].append('C') list1[1].append('D') list1[2].append('E')
\n输出结果:\n
[['A', 'B', 'C', 'D', 'E'], ['A', 'B', 'C', 'D', 'E'], ['A', 'B', 'C', 'D', 'E'], ['A', 'B', 'C', 'D', 'E']]
\n期望的结果是:\n
[['A','B','C'],['D'],['E']]
问题的原因是在初始化方法中使用了*操作符,导致创建了一个包含四个指针的列表,这些指针都指向同一个列表。在这种情况下,不应该使用*操作符。
解决方法是不使用*操作符,而是直接初始化一个空列表。然后,可以使用append()方法将需要的列表添加到主列表中。
下面是一种解决方案的示例代码:
# 初始化一个空列表 main_list = [] # 创建需要添加的子列表 sub_list = [1, 2, 3, 4] # 将子列表添加到主列表中 main_list.append(sub_list) # 输出结果 print(main_list)
运行上述代码后,输出结果为:
[[1, 2, 3, 4]]
可以看到,现在主列表包含一个子列表,而不是四个指向同一个列表的指针。这是因为我们直接将子列表添加到主列表中,而不是使用*操作符创建指针。
通过避免使用*操作符,我们成功解决了Python中将列表添加到列表的问题。现在,我们可以自由地向主列表中添加更多的子列表,而不会出现指针共享的问题。