<p>在您的示例中,您有一个多层字典,其中:</p>
<p><strong>键是字符串</p>
<p><strong>值可以是:</p>
<ul>
<li>词典</li>
<li>元组</li>
<li>字符串</li>
</ul>
<p>试试这段代码,使用单独的递归函数来解析元组和字典。我用<code>print</code>创建了一个函数<code>my_action</code>,但是你可以用任何你想要的替换它。如您所见,在函数中您还可以获得键。你知道吗</p>
<pre class="lang-py prettyprint-override"><code>
def parse_tuple(t):
tuplen = len(t)
for i in range(tuplen):
v = t[i]
if isinstance(v, tuple):
parse_tuple(v)
elif isinstance(v, dict):
parse_dictionary(v)
elif isinstance(v, str):
my_action(v)
else:
print(v.dtype+" is not taken into account !")
def parse_dictionary(d):
for k in d:
my_action(k)
v = d[k]
if isinstance(v, list):
parse_dictionary(d[k])
#elif isinstance(v, list):
# parse_list(v)
elif isinstance(v, tuple):
parse_tuple(v)
elif isinstance(v, str):
my_action(v)
def my_action(x):
print(x)
parse_dictionary(tree)
</code></pre>
<p>根据您的输入,您将获得以下结果:</p>
<pre><code>petal_width <= 0.8
Iris-setosa
petal_width <= 1.75
petal_length <= 4.95
petal_width <= 1.65
Iris-versicolor
Iris-virginica
petal_width <= 1.55
Iris-virginica
petal_length <= 5.45
Iris-versicolor
Iris-virginica
petal_length <= 4.85
sepal_width <= 3.1
Iris-virginica
Iris-versicolor
Iris-virginica
</code></pre>