2017-11-13 5 views
3

3つのパラメータ、x行y列、すべての単一の値を持つ2次元配列を返すx、y、valの関数を作成しようとしていますvalに初期化されます。例えばPythonでX * Y 2次元リストを作成するための汎用コード

myList = createList(2,3,"-") 

は、結果のリストを作成します。 [[ " - "、 " - "、 " - "] [ " - "、 " - "、 " - "]]

をこれまでのところ、私「このため、以下の機能を作成しましたが、それは1、リスト上のすべての初期値を置く:

def createList(x,y,val): 
    myList=[] 
    for i in range(x): 
     for j in range(y): 
      myList.append(val) 
    return myList 

print(createList(2,3,"-")) 

出力を作成します:[」 - 「 『 - 』、 『 - 』、 『 - 』、」 - '、' - ']

+0

感謝:あなたを与えるだろうこれらを組み合わせること

[val for j in range(y)] 

:あなたはまた、Y valのリストを作成することができます

[[] for i in range(x)] 

: まず、Xリストのリストを作成します私は元の投稿を今更新しました:) –

+0

これは重複していません。あなたが参照している他の投稿が、リストを初期化するために使用する値のパラメータを受け入れなかったからです。私の問題を解決するために適応された可能性があります。まだここに新しいと私の周りを学ぶ!私はあなたがあなたの主な質問は、私が質問すると考え理由は、実際の2Dリスト構築、約だったことので、あなたが関数に引数を渡す方法を理解していることを掲示し、どのように関数内でこれらの引数を使用すると、コードから想定さ –

+0

私はあなたの問題を解決するために必要なすべての情報をリンクしています。 –

答えて

0

これを行うには、リスト内包表記を使用できます。このため

createList(x,y,val): 
    return [["-" for j in range(y)] for i in range(x)] 
2

リストの理解度Pythonで2D配列を作成します。

def create2DArray(x, y, val): 
    return [[val for i in range(y)] for j in range(x)] 

myList = create2DArray(2, 3, '-') 
print(myList) 
+0

注[範囲のjについて[ヴァル] * yは(x)は、] '可変オブジェクトの場合 –

+1

は' 'val.copy()' –

+0

フェアポイントとval'を置き換えます'.copy()'は組み込みの変更可能な型で動作しますが、変更可能なすべてのクラスが '.copy'メソッドを提供するわけではありません。 –

関連する問題