盤面の情報取得 (paizaランク C 相当)
https://paiza.jp/works/mondai/a_rank_level_up_problems/a_rank_snake_map_step1
#盤面の行数を表す整数 H , 盤面の列数を表す整数 W , 与えられる座標の数を表す整数 N
H,W,N = map(int,input().split())
#Gに多次元配列を作成、盤面をそのまま記録
G =[]
for i in range(1,H+1):
A = list(input())
G.append(A)
for j in range(1,N+1):
y,x = input().split()
print(G[y][x])
これを実行するとエラーが出た
Traceback (most recent call last):
File "Main.py", line 11, in <module>
print(G[y][x])
TypeError: list indices must be integers or slices, not str
indices = IndexのPlural,つまり複数形
リストのインデックスは数値かスライスでなくてはならず、文字列ではないというエラー。
なんでだ?と思ってよくみたら、たしかに、input()をsplit()しただけでは文字列に分割しただけだった。
初期のときによくやってたエラー。今思い出した汗
#盤面の行数を表す整数 H , 盤面の列数を表す整数 W , 与えられる座標の数を表す整数 N
H,W,N = map(int,input().split())
#Gに多次元配列を作成、盤面をそのまま記録
G =[]
for i in range(1,H+1):
A = list(input())
G.append(A)
for j in range(1,N+1):
y,x = map(int,input().split())
print(G[y][x])
回答例を見てみると
H, W, N = map(int, input().split())
S = [list(input()) for _ in range(H)]
for _ in range(N):
y, x = map(int, input().split())
print(S[y][x])
最初のforを内包表現でやるとこれでした。
完全に忘れてたな。
復習しとかないとな。
あと別に+1しなくても0からでもよかったらしい。
ここらへんの感覚が戻ってないなという気がします。
がんばろう