0

リスト、並べ替え、インデックス作成に関する次の問題の理解と解決に問題があります。コード例は次のとおりです。

import random as rdm
a=[]
for i in range(3):
    a.append([i,rdm.randint(-5,5)])
print a
b = sorted(a,key=lambda a:a[1])
print b
c = []
for j in range(len(b)):
    c.append(b[j])
print c
c[0][1] = 0
print a
print b
print c

「C」の1つの値を変更すると、「b」と「a」がどのように変更されたかに注意してください。どうすればそれを防ぐことができますか?言い換えると。「a」の値を変更したくない「b」または「c」がどうなるかは関係ありません

4

1 に答える 1

1

あなたのコードで、あなたが書くとき:

c.append(b[j])

cオブジェクトへの参照に追加していますb[j]

から独立しbたい場合は、オブジェクトのディープコピーを実行する必要があります。ca

import copy
b = sorted (copy.deepcopy(a), lambda a : a[1])
于 2012-11-10T18:00:05.717 に答える