Вывод элементов списков

Есть список с значения

list = [('0', '0_list.PNG', 1),
                ('1', '2_list.PNG', 2),
                ('2', '4_list.PNG', 0),
                ('3', '6_list.PNG', 0),
                ('4', '8_list.PNG', 0),
                ('5', '10_list.PNG', 0),
                ('6', '12_list.PNG', 3),
                ('8', '16_list.PNG', 0),
                ('9', '18_list.PNG', 0),
                ('10', '20_list.PNG', 0),
                ('11', '22_list.PNG', 4),
                ('13', '26_list.PNG', 0),
                ('14', '28_list.PNG', 0)]

подскажите как вывести его в таком формате

первый принт

('0', '0_list.PNG', 1)

второй принт

('1', '2_list.PNG', 2),
('2', '4_list.PNG', 0),
('3', '6_list.PNG', 0),
('4', '8_list.PNG', 0),
('5', '10_list.PNG', 0),

третий принт

('6', '12_list.PNG', 3),
('8', '16_list.PNG', 0),
('9', '18_list.PNG', 0),
('10', '20_list.PNG', 0),

четвертый принт

('11', '22_list.PNG', 4),
('13', '26_list.PNG', 0),
('14', '28_list.PNG', 0)

Ответы (2 шт):

Автор решения: Andy Pavlov

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

list_ = [('0', '0_list.PNG', 1),
        ('1', '2_list.PNG', 2),
        ('2', '4_list.PNG', 0),
        ('3', '6_list.PNG', 0),
        ('4', '8_list.PNG', 0),
        ('5', '10_list.PNG', 0),
        ('6', '12_list.PNG', 3),
        ('8', '16_list.PNG', 0),
        ('9', '18_list.PNG', 0),
        ('10', '20_list.PNG', 0),
        ('11', '22_list.PNG', 4),
        ('13', '26_list.PNG', 0),
        ('14', '28_list.PNG', 0)]

res = []
tmp = []
for row in list_:
    if not tmp:
        tmp = [row, ]
    else:
        if row[2]:
            res.append(tmp)
            tmp = [row, ]
        else:
            tmp.append(row)    
res.append(tmp)

for r in res:
    print('\n')
    print(*r, sep='\n')
→ Ссылка
Автор решения: SergFSM

можно разбить ваш список таким способом:

from itertools import groupby

res = []
for k,g in groupby(list_,lambda x: x[2]):
    if k: res.append(list(g))
    else: res[-1].extend(list(g))

теперь в res у вас список списков, можете делать с ним что хотите

[[('0', '0_list.PNG', 1)],
 [('1', '2_list.PNG', 2),
  ('2', '4_list.PNG', 0),
  ('3', '6_list.PNG', 0),
  ('4', '8_list.PNG', 0),
  ('5', '10_list.PNG', 0)],
 [('6', '12_list.PNG', 3),
  ('8', '16_list.PNG', 0),
  ('9', '18_list.PNG', 0),
  ('10', '20_list.PNG', 0)],
 [('11', '22_list.PNG', 4),
  ('13', '26_list.PNG', 0),
  ('14', '28_list.PNG', 0)]]
→ Ссылка