次の問題が提示されました。
以下を実行する関数 findLine(prog, target) を定義します。prog は、getBASIC() によって生成される型のような、BASIC プログラムを含む文字列のリストであると仮定します。target は、GOTO ステートメントのターゲットである行番号を含む文字列であると仮定します。この関数は、prog[i] がターゲットと等しいラベルを持つ行になるように、インデックス i (0 から len(prog)-1 までの数値) を返す必要があります。
入力/出力の例:
findLine(['10 GOTO 20','20 END'], '10')を呼び出した場合
、リストの項目 0 はラベル 10 の行であるため、出力は 0 になります。
これが私のコードです:
def findLine(prog, target):
for l in range(0, len(prog)-1):
progX = prog[l].split()
for i in range(0, len(progX)):
if progX[i] == target:
ans = progX[i]
return prog.index(ans)
コードからわかるように、私は完成に近づいています (少なくとも完成したと思います)。ただし、prog のどのインデックスに progX の文字列が含まれているかを特定する方法がわかりません。これについてご協力いただきありがとうございます。