我正在尝试添加或删除缩进以更易读的方式显示数据,但是在每次串联后,第一次尝试从字符串中删除最后一个char
无效。我确定我做错了什么,但看不到。
array = [['1.1', 'val 1.1'], ['1.2', 'val 1.2', [['1.2.1', 'val 1.2.1', [['1.2.1.1', 'val 1.2.1.1'], ['1.2.1.2', 'val 1.2.1.2', [['1.2.1.2.1', 'val 1.2.1.2.1'], ['1.2.1.2.2', 'val 1.2.1.2.2']]], ['1.2.1.3', 'val 1.2.1.3']]], ['1.2.2', 'val 1.2.2'], ['1.2.3', 'val 1.2.3']]], ['1.3', 'val 1.3']]
def pr_lo(array, indent):
for el in array:
print(indent, " ", el[0], ": ", el[1])
if len(el) == 3:
indent = indent + "-"
pr_lo(el[2], indent)
indent = indent[:-1]
pr_lo(array, "")
输出始终看起来相同:
1.1 : val 1.1
1.2 : val 1.2
- 1.2.1 : val 1.2.1
-- 1.2.1.1 : val 1.2.1.1
-- 1.2.1.2 : val 1.2.1.2
--- 1.2.1.2.1 : val 1.2.1.2.1
--- 1.2.1.2.2 : val 1.2.1.2.2
--- 1.2.1.3 : val 1.2.1.3
-- 1.2.2 : val 1.2.2
-- 1.2.3 : val 1.2.3
- 1.3 : val 1.3
1.1
,1.2
和1.3
应该在同一行中,但是它们却不能以相同的方式出现。
答案 0 :(得分:1)
您甚至不必担心不必通过以下方法设置索引来消除缩进:
def pr_lo(array, indent):
for el in array:
print(indent, " ", el[0], ": ", el[1])
if len(el) == 3:
pr_lo(el[2], indent + '-')
pr_lo(array, "")