2012-03-09 13 views
1

リストのリストからリストのコピーを作成する必要があります。次のコードは、エラーメッセージが表示できます:反復でリストをコピーするにはどうすればよいですか?

y = list[x] 
TypeError: unsubscriptable object 
a = [[0],[1]] 
for x in a: 
    y = list[x] 
    print y 

を私はここで間違って何をしているのですか?

+2

'y = list(x)'です。括弧。 – wberry

+0

また、 'x [:]'を使ってコピーを作成することもできます。 –

+0

私の悪い。どうすれば自分の質問を閉じることができますか? – nos

答えて

4
y = list[x] 

あなたは、パラメータとして変数xとリストのコンストラクタを呼び出すことを意味し、代わりの変数「リスト」内の要素の「x」にアクセスしようとしていませんか? のように:

y = list(x) 
+1

これは "キャスト"自体ではなく、 "リストコンストラクタ "を参照してください。 –

+0

あなたは正しいです。そこに私の卑劣な用語、私の悪い。 – veiset

+0

@veiset:あなたは答えを編集してもう少し正確にすることができます。 –

0
y=list(x) 

上記1は

0

listが実際にタイプで正常に動作する必要がありますので、試してみて、そのx要素を取得しても意味がありません。リストをインスタンス化する場合は、list(iterable)を使用する必要があります。

リストをコピーする場合は、より簡単な解決策はcopyモジュールを使用することです。

import copy 
a = [[0],[1]] 
new_list = copy.copy(a[0]) 

あなたがネストされた要素を持つ項目をコピーしたい場合は、あなたがcopy.deepcopyを使用する必要がありますという事実に注意してください。

関連する問題