对于句子理解的实验,我准备了一组文件,每个文件都包含一个列表行,如下所示:
1 14 2“实验句”
“1 14 2”是参考编号。出于实验的目的,我必须随机化每个文件中的句子,约束条件是没有两个相邻的句子可以有相同的第三个数字。那是
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 解释器(从 shell 调用)上运行它时,一切正常,但是当我在 .py 脚本上编写完全相同的代码时,我得到了这个错误。
val1 = buffer[counter].split(" ")[2]
TypeError: 'type' object is unsubscriptable
为什么这只发生在脚本上?
提前致谢。