4

次のようなPythonで、同じサイズの2つのリストのリストがあります。

list_of_lists = [list1, list2]

list1と の両方で何らかの処理を行った後の for ループでは、すべてゼロに初期化されたリストになり、リストになるlist2ようにそれらを交換する必要があります。したがって、反復の最後に、list_of_lists は次のようになります。list1list2list2

list_of_lists = [list1 which has contents of list2, list2 which has all zeros]

list2C では、 andのポインターをコピーして、すべてゼロに初期化されたリストlist1を指すことができます。list2これを python で行うにはどうすればよいですか?

4

3 に答える 3

9

主にループ内で作業しlist1ているようです。list2したがって、それらの値を再割り当てできます。

list1 = list2
list2 = [0]*len(list2)

Python では、これをワンライナーに短縮することもできます。

list1, list2 = list2, [0]*len(list2)

しかし、この場合、2 行のバージョンの方が読みやすいと思います。または、本当に必要な場合は、次のようにしますlist_of_lists

list_of_lists = [list2, [0]*len(list2)]

または両方が必要な場合:

list1, list2 = list_of_lists = [list2, [0]*len(list2)]
于 2013-01-02T04:39:47.780 に答える
1
list_of_lists=[ list_of_lists[1], [0,]*len(list_of_lists[1]) ]

スワップのコストは、あなたが言及したポインタースワップと同じです

于 2013-01-02T05:08:30.127 に答える
1

このような...

list_of_lists = [list_of_lists[1], []]

for i in range(count):
    list_of_lists[1].append(0)
于 2013-01-02T04:40:41.180 に答える