Вывод элементов списков
Есть список с значения
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)]]