【发布时间】:2014-05-15 05:33:38
【问题描述】:
我的输入文件是:
അദ്ദേഹം --> മന്മോഹന്സിംഗ്
അദ്ദേഹത്തെ --> അദ്ദേഹം --> മന്മോഹന്സിംഗ്
അവന് --> രാമന്
അവള്ക്ക് --> സീതയെ
അവള് --> അവള്ക്ക് --> സീതയെ
അത് --> പൂവ്
അവര് --> അവള്ക്ക് --> സീതയെ , അവന് --> രാമന് , ലക്ഷ്മണന്
അവിടെ --> കോട്ടയത്ത്
അവര്ക്ക് --> മന്മോഹന്സിംഗ് , അവള്ക്ക് --> സീതയെ , ലക്ഷ്മണന് , അവന് --> രാമന്
അവിടെ --> അവിടെ --> കോട്ടയത്ത്
അവന് --> ലക്ഷ്മനനെ
അവനെ --> ലക്ഷ്മണന്
അവള്ക്ക് --> സീതയെ
അവന് --> രാമന്
我想要的输出文件包含:
അദ്ദേഹം --> മന്മോഹന്സിംഗ്
അദ്ദേഹത്തെ --> മന്മോഹന്സിംഗ്
അവന് --> രാമന്
അവള്ക്ക് --> സീതയെ
അവള് --> സീതയെ
അത് --> പൂവ്
അവര് --> സീതയെ,രാമന് ,ലക്ഷ്മണന്
അവിടെ --> കോട്ടയത്ത്
അവര്ക്ക് --> മന്മോഹന്സിംഗ് ,സീതയെ,ലക്ഷ്മണന് ,രാമന്
അവിടെ --> കോട്ടയത്ത്
അവന് --> ലക്ഷ്മനനെ
അവനെ --> ലക്ഷ്മണന്
അവള്ക്ക് --> സീതയെ
അവന് --> രാമന്
ie,如果有超过 1 个 '-->' 字符,则需要修改该行。所以我的代码从列表中的位置 2 开始,因为需要第一个 '-->'。并检查列表中的当前和下一个项目。但它没有工作。 我的代码是:
fq = codecs.open('resolvedanaphora.txt', encoding='utf-8')
lines = fq.readlines()
fq.close()
for line in lines:
if ',' in line:
words=[]
words=line.split()
for i in range(2,len(words)):
if '-->' in words[i+1]:
print 'yes'
words[i]=''
words[i+1]=''
for w in words:
fa.write(w)
while len(words) > 0 : words.pop()
else:
fa.write(line)
fa.write('\n')
fa.close()
我得到了一个空白的输出文件。并在终端中显示错误。错误是
if '-->' in words[i+1]:
IndexError: list index out of range
【问题讨论】:
-
如果你没有得到想要的输出,把你得到的东西放进去。
-
您正在检查一个索引
if words[i+1]=='-->'的 3 个字符,因为-->不是单个字符。 -
split可能没有做你想做的事。此外,在完成整个文件之前,只需让一行工作。编写一个函数并用一行输入对其进行测试。 -
试试这个
if words[i] == '-' and words[i+1] == '-' and words[i+2] == '>' : -
编辑了我的输入文件,使得列表包含 '-->' 作为单个标记。