у меня есть исходный файл, который выглядит следующим образом:list.append() строки в цикле
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.
Не могли бы вы предоставить образец вывода, который вы ожидаете? Не полностью понимайте свой вопрос. – Nurjan
, поэтому вывод, который я ожидаю, представляет собой список со всеми словами из третьего столбца, например. Это будет так: lemma = ['okay', 'apple' и т. Д.]. Однако, если я запустил его, в конце список содержит всего одно слово. Я думаю, этот код просто обновляет списки и не «добавляет» слова во время каждой итерации. Я думаю, что это связано с типами и самой итерацией, но я не могу понять, где я совершил ошибку. – dkons2321