Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 18, 2022 11:01:58

vladimir_vl_vlad
Зарегистрирован: 2021-07-16
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вывести список из цикла?

В цикле происходит поиск одинаковых (и идущих подряд) строк в файле, строки добавляются в списки (по одному списку для каждого вида строк). Мне нужно чтобы получились 3 списка вида а у меня выводятся списки из каждой итерации цикла и получается 9 списков “лесенкой”. Как получить 3 списка? Прошу прощения если путано объяснил.

 file_name = 'my_file.txt'
my_list = []
prev_line = ''
with open(file_name, 'r') as file:
    for line in file:
        if prev_line != line:
            my_list = [line]
        else:
            my_list.append(line)
        print(my_list)
        prev_line = line
Содержимое файла my_file.txt :
some_text
some_text
some_text
other_text
other_text
other_text
another_text
another_text
another_text

Офлайн

#2 Фев. 18, 2022 16:27:16

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1393
Репутация: +  124  -
Профиль   Отправить e-mail  

Как вывести список из цикла?

задача какая-то странная, зачем хранить одинаковые строки в списке?.И вообще как-то много вопросов к ней

 my_lst = []
rep_lst = []
with open('my_file.txt', 'r') as f:
    for line in f.readlines():
        l = line.strip()
        if rep_lst:
            if rep_lst[-1] == l:
                rep_lst.append(l)
            else:
                if len(rep_lst) > 1:
                    my_lst.append(rep_lst)
                    rep_lst = [l]
                else:
                    rep_lst = [l]
        else:
            rep_lst.append(l)
    if len(rep_lst) > 1:
        my_lst.append(rep_lst)
print('______________________')
print(my_lst)

[['some_text', 'some_text', 'some_text'], ['other_text', 'other_text', 'other_text'], ['another_text', 'another_text', 'another_text']]

Офлайн

#3 Фев. 18, 2022 16:44:18

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10005
Репутация: +  857  -
Профиль   Отправить e-mail  

Как вывести список из цикла?

  
>>> file_name = 'my_file.txt'
>>> my_list = []
>>> prev_line = ''
>>> with open(file_name, 'r') as file:
...     for line in file:
...         if prev_line != line:
...             my_list.append([line])
...         else:
...             my_list[-1].append(line)
...         prev_line = line
...     print(my_list)
... 
[['some_text\n', 'some_text\n', 'some_text\n'], ['other_text\n', 'other_text\n', 'other_text\n'], ['another_text\n', 'another_text\n', 'another_text\n']]
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version