1

重複の可能性:
Python:リストのリストに新しい要素を追加する方法は?

私はPythonでこの非常に奇妙な(私にとって)振る舞いを思いついた。

空の2Dリスト(または必要に応じて配列)があり、その列の1つに要素を追加すると、他のすべての列に同じ値が追加されます。

コードは次のとおりです。

row = [1, 2, 3, 4]
yChannel = 4*[[]]

sectorPlace = 0
for sector in yChannel:
    sector.append(row[sectorPlace])
    sectorPlace += 1

print yChannel

そして出力:

[[1、2、3、4]、[1、2、3、4]、[1、2、3、4]、[1、2、3、4]]

4

2 に答える 2

4

yChannel同じリストの4つのコピーが含まれています。あなたが持っているものを比較してください:

yChannel = [[], [], [], []]
于 2012-07-03T15:40:09.157 に答える
3

この線

yChannel = 4*[[]]

同じリストオブジェクトの4倍のリストを作成します。この単一のリストオブジェクトを変更すると、実際にはすべて同じリストオブジェクトであるため、サブリストのすべてが変更されるように見えます。あなたは使用する必要があります

yChannel = [[] for dummy in range(4)]

4つの独立したサブリストのリストを作成します。

于 2012-07-03T15:41:14.920 に答える