获取字典的键列表的值

11 浏览
0 Comments

获取字典的键列表的值

我需要通过使用键列表从字典中访问元素。

字典如下,

groups = {
    'servers': {
        'unix_servers': {
            'server_a': '10.0.0.1',
            'server_b': '10.0.0.2',
            'server_group': {
                'server_e': '10.0.0.5',
                'server_f': '10.0.0.6'
            }
        },
        'windows_servers': {
            'server_c': '10.0.0.3',
            'server_d': '10.0.0.4'
        }
    }
}

在这里,我想通过使用键列表访问键'server_e',

keys = ['servers', 'unix_servers', 'server_group', 'server_e']

这些键按顺序排列,但我事先不知道这个列表中有哪些键。

那么,我如何通过这个键列表访问'server_e'的值,即'10.0.0.5'呢?

0
0 Comments

问题的出现原因:

在这个问题中,用户希望通过给定一个键列表,从字典中获取相应的值。然而,用户忘记了在问题中添加如何修改这个值的部分。

解决方法:

为了从键列表中获取字典的值,可以使用循环迭代键列表中的每个键,并将其用作字典的键来逐步获取值。当循环迭代结束时,最终的值就是所需的结果。

如果用户想要在获取值后修改它,可以存储一个对倒数第二个元素的引用。这样,在获取到最终值之前,可以使用该引用来修改字典中的值。

下面是解决问题的示例代码:

# 获取字典的值
d = groups 
for key in keys:
    d = d[key]
print(d)
# 修改获取到的值
d = groups 
p = None
for key in keys:
    p = d
    d = d[key]
p[key] = "new value here"

以上代码中,`groups` 是要查询的字典,`keys` 是键列表。第一个代码块用于获取字典的值,而第二个代码块用于在获取到值后修改它。

希望以上解决方法对您有所帮助!

0