Эта часть кода, как представляется, будет хорошо
for line in new_file:
text = [line.strip() for line in line.split(' ')]
Однако, если вы делаете следующее
for line in new_file:
text = [line.strip() for line in line.split(' ')]
number = text[0], punc = text[1], alpha = text[2]
Вы можете врезался в problems..take, например, строка в файле ниже
"hello world"
, если разделить эту строку вы будете иметь список как [ «привет», «мир»]. этот список содер ns два элемента.
Теперь, если вы назначаете этот результат, как text=["hello", "world"]
и вы поместите этот результат в переменной, как
alpha = text[2]
Вы наверняка ПРИИМИ List index out of range.
..Why?
Потому что текст [2] не существует!
Некоторые строки могут содержать менее 3 слова (как в данном примере)
Пересмотрите ваш подход
Попробуйте использовать словарь подход
alpha={"alphabet":[]}
numb={"alphabet":[]}
punc={"punctuation":[]}
..iterate через файл и используйте использование списка для выбора всех знаков препинания, букв и т. д. и добавьте его в соответствующие словарные элементы ... Если у вас возникли проблемы с отправкой ваших пересмотренных кодов
EDIT РАБОЧИЙ ПРИМЕР КАК БЫ РЕШАТЬ ЭТУ
Пусть говорит, у меня есть файл с именем new_file и имеет содержание ниже
hello my name is repzERO
AND THIS IS my age: 100 years
питон скрипт Я попытался
import re
new_file=open("new_file","r")
alpha={"alphabet":[]}
numb={"number":[]}
punc={"punctuation":[]}
all_punctuation=""
for line in new_file:
alpha["alphabet"]+=[c for c in line if re.search("[a-zA-Z ]",c)]
numb["number"]+=[c for c in line if re.search("[0-9]",c)]
punc["punctuation"]+=[c for c in line if re.search("[^\w\s]",c)]
print(alpha)
print(numb)
print(punc)
{'alphabet': ['h', 'e', 'l', 'l', 'o', ' ', 'm', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 'r', 'e', 'p', 'z', 'E', 'R', 'O', 'A', 'N', 'D', ' ', 'T', 'H', 'I', 'S', ' ', 'I', 'S', ' ', 'm', 'y', ' ', 'a', 'g', 'e', ' ', ' ', 'y', 'e', 'a', 'r', 's']}
{'number': ['1', '0', '0']}
{'punctuation': [':']}
Можете ли вы добавить свой код к вопросу? – Kasramvd
Хорошо, я ввел свой код в вопрос !! – Luke
@ Luke, пожалуйста, отредактируйте вопрос с помощью своего кода –