删除列表

时间:2015-09-18 13:25:18

标签: python list append

陷入了困扰我的编程问题。 我解析数据和:

  • 将每个相关的块添加到 list1 ,将list1追加到 final_list 。 (为了方便和整洁的未来演示)
  • 对于下一条相关信息,我正在删除list1中的“old”信息* list1 [:] = []
  • 将新的新信息附加到 list1 ,将 list1 追加到final_list并vo ...我想:)

所有帮助表示赞赏!

示例:

final_list=[]
list1 = [1,2,3,4]
list2 = [5,6,7,8]

final_list.append(list1)
final_list.append(list2)
print final_list

list1[:] = []
print final_list

示例输出

[[1, 2, 3, 4], [5, 6, 7, 8]]
[[], [5, 6, 7, 8]]

内容sys.version

Python: 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)]

3 个答案:

答案 0 :(得分:1)

  

我正在使用* list1 [:] = []

删除list1中的“旧”信息

因此,list1将与您在final_list中引用的对象相同。

final_list只是[list1, list2]。因此输出。

如果您想要一个新鲜的物体,请重新分配变量:

list1 = []

答案 1 :(得分:1)

通过调用list1[:] = [],您可以在任何地方更改所有list1的先前值,即使在final_list中也是如此。要保留list1中的final_list值,您应该复制并附加副本而不是原始列表。可以找到列表复制的一些解释和好方法here

答案 2 :(得分:1)

正如许多社区读者指出的那样,final_list中的对象只是指向原始对象“list1”和“list2”的指针。最后,我使用方法 final_list.append(list(list1))将list1的值存储在final_list中。 (作为副本)在此之后可以安全地重置list1并重复该过程。