我有一个2个列表的列表,大小相同,在python中如下:
list_of_lists = [list1, list2]
在对list1
和list2
进行一些处理后的for循环中,我必须交换它们,以便list1
变为list2
并且list2
变为列表初始化为全零。因此,在迭代结束时,list_of_lists必须如下所示:
list_of_lists = [list1 which has contents of list2, list2 which has all zeros]
在C中,可以复制list2
和list1
的指针,然后将list2
指向初始化为全零的列表。我如何在python中执行此操作?
答案 0 :(得分:9)
听起来你主要在循环中使用list1
和list2
。所以你可以重新分配他们的价值观:
list1 = list2
list2 = [0]*len(list2)
Python还允许您将其缩短为一行:
list1, list2 = list2, [0]*len(list2)
但在这种情况下,我发现两行版本更具可读性。或者,如果您真的想要list_of_lists
,那么:
list_of_lists = [list2, [0]*len(list2)]
或者如果您想要两者:
list1, list2 = list_of_lists = [list2, [0]*len(list2)]
答案 1 :(得分:1)
喜欢这个......
list_of_lists = [list_of_lists[1], []]
for i in range(count):
list_of_lists[1].append(0)
答案 2 :(得分:1)
list_of_lists=[ list_of_lists[1], [0,]*len(list_of_lists[1] ]
交换的成本与您提到的指针交换相同