2017-01-17 3 views
0

リストAnの各行にそれぞれmの列を持つリストが与えられている。 空のリストBを同じ構造(n行、それぞれmのコンポーネント)で作成するライナーが1つありますか?numpyなしで与えられたリストの形状/構造の空のリストを初期化する

ナンシーリストは作成/再形成できます。 Pythonの組み込みlistタイプはそのような引数をサポートしていますか?

+2

'[[範囲内(n)内の_の範囲なし(m)] ' –

+0

個々の要素を挿入または削除できますが、同等の変形機能はありません。 – Aaron

+0

@PatrickHaughリスト 'A' – vvy

答えて

2
A = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

n = len(A) 
m = len(A[0]) 


B = [[0 for x in range(m)] for y in range(n)] 

EDIT:

B = [[0 for x in range(len(A[0])] for y in range(len(A))] 

EDIT:

それワンライナーようにするに

コメントでJblascoによって示唆されるように、これはやってのも、よりよい方法です。それ:

B = [[0 for i in line] for line in A] 

(そのソリューションのJblascoへのすべてのクレジット!!)

+0

ありがとうございます。それはちょうど1ライナーではありませんが、基本的なアイデアを説明します。 @ PatrickHaughの答えは洗練された答えです。 – vvy

+1

さらに簡単にするために、私はお勧めしたいと思います:B = [[0行目は2行目] Aの行のために] – Jblasco

+0

@ Jblasco ah thats awesome!良いですね! :) – RichSmith

0

あなたが使用することができます:B = [[なし] * M] * nは

それはなしのm列のn行のリストを作成します。

+0

これを行った後、次の印刷を試みましたか? id(B [0])== id(B [1])または行の最初の要素を変更しますか? – Jblasco

+0

あなたの発言に感謝します。 –

関連する問題