Форум сайта python.su
0
В цикле происходит поиск одинаковых (и идущих подряд) строк в файле, строки добавляются в списки (по одному списку для каждого вида строк). Мне нужно чтобы получились 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
Офлайн
124
задача какая-то странная, зачем хранить одинаковые строки в списке?.И вообще как-то много вопросов к ней
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']]
Офлайн
857
>>> 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']] >>>
Офлайн