文理解の実験のために、次のようなリスト行で構成される一連のファイルを用意しました。
1 14 2「実験文」
「1 14 2」は参照番号です。実験のために、隣接する 2 つの文が同じ 3 番目の数字を持つことはできないという制約の下で、各ファイルの文をランダム化する必要があります。あれは
1 14 2
1 14 3
許容されるシーケンスですが、
1 14 2
1 13 2
ではありません。
line_randomizer(filename)
のすべての行をランダム化して に配置する関数を作成filename
し、 の行数で変数をbuffer = []
定義しました。次に、次の関数を書きました。limit
buffer
def checker():
counter = 0
while counter < limit:
next = counter + 1
val1 = buffer[counter].split(" ")[2]
val2 = buffer[next].split(" ")[2]
if int(val1) == int(val2):
print("bad sequence; starting new randomization")
line_randomizer(filename)
else:
print("continue checking")
counter = counter + 1
これを (シェルから呼び出された) Python インタープリターで実行すると、すべて正常に動作しますが、.py スクリプトでまったく同じコードを記述すると、このエラーが発生します。
val1 = buffer[counter].split(" ")[2]
TypeError: 'type' object is unsubscriptable
これがスクリプトでのみ発生するのはなぜですか?
前もって感謝します。