Дубликаты, которые вы получаете, вызваны тем, что вы пытаетесь разделить одну и ту же строку дважды двумя разными символами.
Например, рассмотрим следующую строку:
Я пытаюсь узнать python. Я правда? Это предложение, которое я буду тестировать.
Если мы передадим эту строку вам для l oop, она разделит эту строку следующим образом:
Первый на. (точка)
new_list = ['I am trying to learn python', ' Am I really? This is the sentence I will test', '']
Второе включение? (Знак вопроса)
ultra_list = ['I am trying to learn python. Am I really', ' This is the sentence I will test.']
Вы расширяете эти два списка до split_list
следующим образом:
split_list.extend(new_list)
split_list.extend(ultra_list)
Таким образом, окончательный split_list
будет:
split_list = ['I am trying to learn python', ' Am I really? This is the sentence I will test', '', 'I am trying to learn python. Am I really', ' This is the sentence I will test.']
Этот список вы передаете своей функции create_list_with_words
, которая проходит через каждый элемент split_list
и разделяет каждый элемент на пробел. Итак, неправильный счет.
Ниже приведен исправленный код:
def create_list_with_words(list):
new_list = []
for item in list:
words = item.split()
for word in words:
new_list.append(word)
print(new_list)
print(len(new_list))
file = open("classic_cars.txt", "r")
split_list = []
for line in file:
line = line.replace("?", '')
new_list = line.split(".")
split_list.extend(new_list)
create_list_with_words(split_list)
Возможно, вам придется внести дополнительные изменения в этот код в зависимости от ваших потребностей.
ПРИМЕЧАНИЕ: Имя вашей функции create_list_with_words
, но вызов задан как create_list_of_words
. Я предполагаю, что это опечатка при публикации.