Basi c python, как вернуть списки списков при чтении текстового файла - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь сохранить каждую новую строку текстового файла как отдельный список внутри списка, где символы этого вложенного списка также являются отдельными ячейками. Прямо сейчас он добавляет только конечный символ каждой строки, не уверен, почему из-за вложенного while l oop. Кто-нибудь видит ошибки? Спасибо. Подскакиваю в шаге, заряженный бодростью, Потому что я еду по полосе для машин. Назовите меня квадратным, Друг, мне все равно. Этот маленький желтый знак нельзя игнорировать. Говорю вам, это очень мило. Каждая поездка - это путешествие в рай С моей малышкой на борту!

Ответы [ 2 ]

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

Я предлагал вам использовать функцию readlines from python, таким образом вы можете перебирать каждую строку открытого файла, а затем вы можете преобразовать строку в список, выполнив это, вы создадите список со всеми символами, составляющими эту строку (что, кажется, именно то, что вы хотите).

Попробуйте использовать следующий код:

def read_lines(filename):
    x = open(filename, 'r') 
    ls_1 = [list(line.strip()) for line in x.readlines()]
    x.close()
    return ls_1
0 голосов
/ 07 мая 2020

причина вы получаете только последний символ, потому что вы создаете * новый список внутри вашего внутреннего l oop:

    while t < len(st):
        ls_2 = []
        ls_2.append(st[t])
        t += 1
    ls_1.append(ls_2) 

Вместо этого вам нужно будет сделать :

    ls_2 = []
    while t < len(st):

        ls_2.append(st[t])
        t += 1
    ls_1.append(ls_2) 

Однако не используйте циклы while для чтения из файлов, файловые объекты являются итераторами, поэтому просто используйте for-l oop. Точно так же не используйте while l oop для итерации по строке.

Вот как вы это сделаете в Python:

result = []
with open(filename) as f:
    for line in f:
        result.append(list(line.strip()))

Или с пониманием списка:

with open(filename) as f:
    result = [list(line.strip()) for line in f]

Вы почти никогда не используете циклы while в Python. Все основано на итераторах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...