2017-08-07 6 views
0

私は入力と2次元配列を出力する関数を作ろうとしています。 いくつかの研究(1D配列で作業している間)の後、私はPythonの配列のようなものはないことを知りました。しかし、私はリストを使って目標を達成することができました。リストのリストを使用して、Pythonの2D配列

次のコードは、リストを使用して、1Dアレイのために働いた:

def array_input(num): 
    for Index in range(0, num): 
     ind = int(input("Please enter element {0} : ".format(Index))) 
     array_list.append(ind) 


def array_output(): 
    for Index in range(0, len(array_list)): 
      print("Element {0} is {1} ".format(Index, array_list[int(Index)])) 
    """print(array_list)""" 


array_list = [] 
a = int(input("Please enter the length of the array")) 
array_input(a) 
array_output() 

input("Pres any key to continue") 

以下は、私はリストのリストを使用して、2次元配列のために書いたものである:出力が動作している、しかし、入力がありません。誰かがリストのリストに新しい要素(2D行列のようなもの)をどのように追加できるかを考えて助けてくれますか?

def array_input(row, column): 

    print(array_list) 
    for R in range(0, row): 
     for C in range(0, column): 
      ind = int(input("Please enter element ({0},{1}) : ".format(R, C))) 
      array_list[R][C] = ind 


def array_output(row, column): 
    for R in range(0, row): 
     for C in range(0, column): 
      print("Element ({0},{1}) is {2} ".format(R, C, array_list[int(R)][int(C)])) 
    print(array_list) 


array_list = [[]] 

a = int(input("Please enter the number of rows of the array")) 
b = int(input("Please enter the number of columns of the array")) 
array_input(a, b) 
array_output(a, b) 


input("Pres any key to continue") 
+1

** Pythonで配列など何もないことがわかりました** ....うわー、これをチェックしてくださいhttps://docs.python.org/3.6/library/array.html – Netwave

+0

コンテンツを持たない位置を変更しようとしています。行が1つしかなく、列が含まれていません。 2つの答えは、まずすべての位置に0を含む行列を作成することでこれを回避します。 –

答えて

1
def array_input(row, column): 

    for R in range(0, row): 
     for C in range(0, column): 
      ind = int(input("Please enter element ({0},{1}) : ".format(R, C))) 
      array_list[R][C] = ind 
      print(ind) 

def array_output(row, column): 
    for R in range(0, row): 
     for C in range(0, column): 
      print("Element ({0},{1}) is {2} ".format(R, C, array_list[int(R)][int(C)])) 
    print(array_list) 


a, b = 2, 2; 
array_list = [[0 for x in range(a)] for y in range(b)] 
array_input(2,2) 
array_output(2,2) 

これはあなたのために働く必要があります。もちろん、abの割り当てをユーザーの入力に切り替えることができます。重要な部分はarray_list変数の割り当てです。これはあなたの質問をansers願っています。

+0

本当に助けてくれてありがとう –

+0

私は助けてよかった!その情報を残したままの理由であなたのソリューションがうまくいかない理由についてのあなたの質問に関するYann Vernierのコメントをチェックしてください:) –

0

これはあなたの配列

def array_input(row, column): 
    for R in range(0, row): 
     for C in range(0, column): 
      ind = int(input("Please enter element ({0},{1}) : ".format(R, C))) 
      array_list[R][C] = ind 
      print(ind) 

def array_output(row, column): 
    for R in range(0, row): 
     for C in range(0, column): 
      print("Element ({0},{1}) is {2} ".format(R, C, array_list[int(R)][int(C)])) 
    print(array_list) 

def create_array(row,column): 
    array_list=[] 
    for R in range(0,row): 
     array_list.append([]) 
     for C in range(0,column): 
      array_list[R].append(0) 
    return array_list 

a = int(input("Please enter the number of rows of the array ")) 
b = int(input("Please enter the number of columns of the array ")) 

array_list= create_array(a,b) 
array_input(a,b) 
array_output(a,b) 

ハッピーコーディングで何ができるかで最も柔軟性をできるようになります!

関連する問題