私がやりたいのは、ネストされたリストを別のリストに割り当てることです。たとえば、alistからblistへ。
alist = [[0], [1], [2], [3]]
blist = alist[:]
blist[0].append(1)
このように、はにid(alist[0])
等しいid(alist[1])
ので、alistもに変わります[[0,1], [1], [2], [3]]
。これは私が望んでいることではありません。
私が持っている回避策は次のとおりです。
alist = [[0], [1], [2], [3]]
blist = []
for item in alist:
blist.append(item[:])
blist[0].append(1)
この回避策では、alistはblistのアイテムを変更しても影響を受けません。しかし、それはそれほどpythonicではないようです、より良い解決策はありますか?これにより、2レベルのネストされたリストのディープコピーを解決できます。例えば:alist = [[[1], 10], [[2], 20], [[3], 30]]