2016-11-03 10 views
0

今日はPythonを学んだ私の最初の日であり、2次元配列に関する質問があります。 2次元配列を作成する必要がありますが、それぞれのサイズはわかりません。 Javaのようなarraylistに類似したものはありますか?ここに私のコードがありますので、あなたは私が何を意味するか見ることができます。昨年のコードの出現の3日目です。あなたがそれをやっていないと私はそれを設定する方法を見たいと思っているので、私は少し前にスポイラーを推測する。Python可変長2次元配列

f=open('directions.txt') 
houses = [0][0] 
rows = 0 
column = 0 
total = 0 
for line in f: 
    for c in line: 
     if (str(c) == '^'): 
     rows += 1 
     houses[rows][column] += 1 
    elif (str(c) == '>'): 
     column += 1 
     houses[rows][column] +=1 
    elif (str(c)=='<'): 
     column -= 1 
     houses[rows][column-=1] +=1 
    else: 
     rows -= 1 
     houses[rows][column] +=1 

ありがとうございました。

+0

ような何かをしたいと考えています。つまり等号を出してください。 – jcfollower

+0

私は行と列の変数を使って、現在の行と列を追跡しています。どのように私はそれを増やすだろうか? – CS2016

+0

'rows'をインクリメントしたい場合は、それ自身の行で' rows + = 1'を実行してからdo ... '' hous [rows] [... ' – jcfollower

答えて

0

私は、あなたはおそらく `家屋[行+ = 1]したくない...`あなたがこの

houses = dict() 
rows = 0 
column = 0 
total = 0 
for line in f: 
    for c in line: 
     houses.setdefault(rows,dict()) 
     houses[rows].setdefault(column, 0) 
     if (str(c) == '^'): 
      houses[rows][column] += 1 
      rows += 1 
     elif (str(c) == '>'): 
      houses[rows][column] +=1 
      column += 1 
     elif (str(c)=='<'): 
      houses[rows][column] +=1 
      column -= 1 
     else: 
      houses[rows][column] +=1 
      rows -= 1