gpt4 book ai didi

python - 如何访问列表字典中的每个元素?

转载 作者:行者123 更新时间:2023-12-01 07:18:34 25 4
gpt4 key购买 nike

我有一本字典,其中包含列表作为值之一。我想分别访问键和值。我也想单独访问列表的元素。

我正在尝试使用我得到的最终答案绘制决策树。为此,我必须单独访问每个元素。我得到的最终答案如下。谁能帮助我如何单独访问每个值?

tree = {
"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"
]
}
]
}
]
}

访问元素后,我想按以下格式绘制决策树。

https://images.app.goo.gl/twNqgqq6tzMa2Ykj8

最佳答案

在您的示例中,您有一个多层字典,其中:

是字符串

可以是:

  • 字典
  • 元组
  • 字符串

尝试这段代码,使用单独的递归函数来解析元组和字典。我使用 print 创建了一个函数 my_action,但您可以将其替换为您想要的任何内容。正如您所看到的,在函数中您还可以获得键。


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)

根据您的输入,您将获得以下结果:

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

关于python - 如何访问列表字典中的每个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57826698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com