【发布时间】:2021-08-12 09:56:31
【问题描述】:
我有一个表达式树,它生成树列表。列表因用于计算数字的表达式而异,例如,
T = ['-', ['+', ['-', 75, ['-', 10, 3]], ['-', 100, 50]], 3]
或者
T = ['+', ['*', 5, 4] ,['-', 100, ['/', 20, 2] ]]
我想遍历 Tree 的每个元素并将运算符的索引、所有运算符的列表、数字的索引和数组中的数字列表存储起来。为此,我试图找出一种可以循环进入列表的方法,然后检查类型是否为字符串,这意味着它是一个运算符,并通过附加将该索引和值存储在相应的数组中,否则如果类型是数字,然后将其与所有数字一起存储在数组中。
我试过下面的代码
T = T = ['-', ['+', ['-', 75, ['-', 10, 3]], ['-', 100, 50]], 3]
for i in range(0,len(T)):
if type(T[i]) != int:
for j in range(0,len(T[i])):
print(T[i][j])
else:
print(T[i])
运行代码给出输出:
-
+
['-', 75, ['-', 10, 3]]
['-', 100, 50]
3
我们基本上试图实现的是进入列表,直到我们可以根据列表大小。关于如何实现这一点的任何想法?
我的回答基本上是:
address list of the operators is [[0], [1, 0], [1, 1, 0], [1, 1, 2, 0], [1, 2, 0]]
list of the operators is ['-', '+', '-', '-', '-']
address of the numbers is [[1, 1, 1], [1, 1, 2, 1], [1, 1, 2, 2], [1, 2, 1], [1, 2, 2], [2]]
list of the numbers is [75, 10, 3, 100, 50, 3]
【问题讨论】:
-
阅读递归。
-
@Mark 刚刚编辑了问题,预期的输出在帖子的末尾,基本上是所有 4 个数字和运算符索引列表及其值。
-
@ScottHunter 如果我进行递归,我将如何获取有关索引的信息?假设有时索引是 [0],但有时它必须是 [1, 1, 0] 或 [1, 1, 2, 0](来自预期的输出)
标签: python python-3.x list for-loop iterator