【发布时间】:2017-03-16 20:21:06
【问题描述】:
我有一个如下所示的源文件:
okay \t ADJ \t okay
apple \t N \t apple
etc.
我尝试过滤掉第 2 列和第 3 列,从一个字母开始,并且应该排除所有包含 '\'、'&' 和字符串 '(unknown)' 的行。如果我将它写入一个新文件,则代码可以正常工作。但是,我尝试将整个列保存为列表,似乎有问题。
谁能帮我推理的错误在哪里?
with open(path_file) as f:
for line in f:
lemma = []
if re.match('[A-Z]|[a-z]', line):
line = line.strip()
columns = line.split('\t')
pos = columns[1]
lemmas = columns[2]
lemma.append(lemmas)
# print type(lemmas)
# type - str
if '(unknown)' in lemmas:
pass
elif '\\' in lemmas:
pass
elif '&' in lemmas:
pass
else:
lemma.append(lemmas)
# outfile.write(str(lemmas) + ':::' + str(pos) + '\n')
我正在使用 python 2。
【问题讨论】:
-
您能否给出您期望的示例输出?不完全理解您的问题。
-
所以我期望的输出是一个列表,其中包含第三列中的所有单词。就像这样:引理 = ['okay', 'apple' etc]。但是,如果我运行它,最后,列表只包含 1 个单词。我猜,这段代码只是更新列表,并没有在每次迭代期间“附加”单词。我认为这与类型和迭代本身有关,但我不知道我在哪里犯了错误。