まず、入力の最初の5 8
は続く入力の高さが5
で幅が8
であることを表しているようですね。
w, h = map(int,input().split())
print(w) # 5
print(h) # 8
記載のコードで出力して確認すると、逆になっているようですからこれを修正しょう。
- w, h = map(int,input().split())
+ h, w = map(int,input().split())
print(w) # 8
print(h) # 5
さて、その次の行を取得してみましょう。
h, w = map(int,input().split())
+ line = input()
+ print(line) # .#.#....
「a[i][j]
のようにアクセスしたい」ということですので配列に入れてみましょう。
h, w = map(int,input().split())
- line = input()
- print(line) # .#.#....
+ data = []
+ data.append(input())
+ print(data[0])
残りのデータも読み込んでみましょう。
h, w = map(int,input().split())
data = []
data.append(input())
+ data.append(input())
+ data.append(input())
+ data.append(input())
+ data.append(input())
print(data[0]) # .#.#....
+ print(data[1]) # ........
+ print(data[2]) # ........
+ print(data[3]) # ........
+ print(data[4]) # .....#..
さて、文字列に対してa[i][j]
のようにアクセスするにはどうすれば良いでしょうか。
pythonでは文字列の文字にアクセスできます。
string = "abcde"
print(string[2]) # c
配列にしたほうが良ければ、例えばlist
関数を使ってみます。
string = "abcde"
chars = list(string)
print(chars) # ['a', 'b', 'c', 'd', 'e']
先程の入力の1行を配列にしてみましょう。
h, w = map(int,input().split())
data = []
data.append(list(input()))
print(data[0]) # ['.', '#', '.', '#', '.', '.', '.', '.']
ここまででゴールに必要な要素が揃ってきたと思いますが、いかがでしょうか?