2

アイテムをリストにコピーしようとしていますが、常にリンクだけが追加されます。

これは私が試したものです:

1:

list1 = []
list2 = [1]
list1.append(list2)

2.2。

list1 = []
list2 = [1]
list1 += [list2]

3.3。

list1 = []
list2 = [1]
list1 = list1 + [list2]

その後list2を変更すると、list1も常に変更されます。

Pythonバージョン:sys.version_info(major = 2、minor = 7、micro = 3、releaselevel ='final'、serial = 0)

参照だけを追加せずにリストに追加するにはどうすればよいですか。

4

3 に答える 3

6

あなたが欲しいlist1.extend(list2)。詳細については、ドキュメントを参照してください: http: //docs.python.org/2/tutorial/datastructures.html

于 2012-11-21T17:04:08.443 に答える
4

答えは、結果がどうなるかによって異なります。

  1. リスト全体を単一の要素として追加する場合は、を使用list2[:]して(浅い)コピーを作成する必要があります。例:

    list1 += [list2[:]]

  2. 一方、list2要素をに追加しようとしlist1ている場合は、を探しています

    list1.extend(list2)

于 2012-11-21T17:04:11.747 に答える
0

これは新しいリストを作成するため、最善の方法ではないかもしれませんが、機能します。

list1 = list1 + list2
于 2012-11-21T17:15:15.133 に答える