陷入了困扰我的编程问题。 我解析数据和:
所有帮助表示赞赏!
示例:
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)]
答案 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并重复该过程。