我有一个表达式树,生成了一个树形列表。列表的内容取决于用于计算数字的表达式,例如:
我尝试了以下代码:
或T = ['-', ['+', ['-', 75, ['-', 10, 3]], ['-', 100, 50]], 3]
我想迭代遍历列表中的每个元素并将运算符的索引、所有运算符组成的列表、数字的索引以及所有数字组成的列表储存在一个数组中。为此,我正在尝试可能会循环进入列表,然后仅检查类型是否为字符串,这意味着它是运算符,并将其索引和值存储在各自的数组中,如果类型是数字,则将其存储在带有所有数字的数组中。T = ['+', ['*', 5, 4] ,['-', 100, ['/', 20, 2] ]]
我尝试了以下代码:
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]