Программа, создающая список внутри списка при чтении содержимого файла - PullRequest
0 голосов
/ 25 мая 2020

Я нашел исправление для следующей проблемы, однако я хотел бы понять, почему мой приведенный ниже код создает список строк в списке, т.е. имеет этот список строк как единственный элемент во внешнем списке.

У меня есть файл .txt, который я читаю, и он состоит примерно из 25 предложений. Это всего лишь один длинный абзац, поэтому я хотел разбить его на предложения, разделенные точкой. Сначала я использовал этот код для выполнения этого шага:

file = open("love_life.txt", "r")

list_of_sentences = []
for line in file:
    new = line.split('.')
    list_of_sentences.append(new)
file.close()
print(list_of_sentences)

Я ожидал, что это создаст список строк, где каждая строка представляет предложение, разделенное точкой. Но вместо этого, хотя он действительно создал список строк / предложений, он сделал это внутри другого списка. Поэтому, когда я пытался перебрать список, я просто перебирал один раз вложенный список. Как этот вывод:

[["lifeguards save lives", "time is of the essence", "the wind blows where it wants"]]

Кто-нибудь может сказать мне, почему это происходит с этим кодом?

Ответы [ 2 ]

1 голос
/ 25 мая 2020

Это потому, что line.split('.') возвращает список, а list_of_sentences.append(new) добавляет этот список к list_of_sentences. Может быть, вы хотели вместо этого использовать list_of_sentences.extend(new)? Это добавит каждый элемент из new к list_of_sentences.

0 голосов
/ 25 мая 2020

Вы должны использовать extend () , если вы не хотите, чтобы в конце был список списка.

    file = open("love_life.txt", "r")

    list_of_sentences = []
    for line in file:
        new = line.split('.')
        list_of_sentences.append(new)
    file.close()
    print(list_of_sentences)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...