Допустим, у меня есть следующий список:Python: печать со знанием текущего уровня отступа
xl = [[[0,0], [-1,1], [-2,2]], [[-3,3], [-4, 4], [-5,5]]
Я хочу напечатать и сохранить иерархию:
for el in xl:
print el
for iel in el:
print ' '*4 + str(iel)
for iiel in iel:
print ' '*8 + str(iiel)
>>>
[[0, 0], [-1, 1], [-2, 2]]
[0, 0]
0
0
[-1, 1]
-1
1
[-2, 2]
-2
2
[[-3, 3], [-4, 4], [-5, 5]]
[-3, 3]
-3
3
[-4, 4]
-4
4
[-5, 5]
-5
Иерархия может быть любой глубины
Мне нужен некоторый питонический способ печати с сохранением текущего уровня итерации (чтобы не справляться с отступом вручную).
Дальше мой реальный случай более сложный (итерация над объектами lxml). Мне просто нужен способ узнать текущий уровень, когда я повторяю списки с циклами.
Вы говорите о 'enumerate'? https://docs.python.org/2/library/functions.html#enumerate –
В вашем сложном случае вы говорите об элементе lxml? –
Если вы действительно хотите напечатать элемент lxml, вам может не понадобиться вручную его кодировать, вы должны попробовать что-то вроде: 'print (etree.tostring (root, pretty_print = True))'. –