1

重複の可能性:
Pythonリストの混乱

これは、Pythonのリストに関する質問です。(私のプログラミング環境はPythonを使用したSL4Aです)

番号「n」を入力した以下のリストが欲しいです。

[ ['a'] , [] , [] , [] ] # (this example is the list when n =4)    <- the list I want

そこで、以下にソースコードを書きました。

n = input()
array = [[]]*n
array[0].append('a')
print array

ただし、上記の出力を取得することはできますが、次のようなリストも取得できます...

[ ['a'], ['a'], ['a'], ['a'] ] #  <- wrong list

それで、私は2つの質問があります。

  1. 欲しいもののリストを教えてくれるソースコードを教えてください。
  2. ソースコードが間違ったリストを表示するのはなぜですか?
4

3 に答える 3

3

あなたは使用する必要があります

array = [[] for x in range(n)]

それ以外の場合は、同じリストへの4つの参照を取得します

于 2012-11-19T12:37:13.657 に答える
0

Python 3.2:

n = input()
array = [[] for i in range(n)]
array[0].append('a')
print array
于 2012-11-19T13:23:22.913 に答える
0

あなたがするとき

array = [[]]*n

n 個の同じリンクを含むリストが得られます。そのため、要素の 1 つを編集すると、すべての要素が編集されます。これを取り除くには、このようなものを使用してください

for i in range(0, 4):
    array1.append([])
    array2+=[]
于 2012-11-19T12:44:44.543 に答える