获取字典的键列表的值
获取字典的键列表的值
我需要通过使用键列表从字典中访问元素。
字典如下,
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'呢?
问题的出现原因:
在这个问题中,用户希望通过给定一个键列表,从字典中获取相应的值。然而,用户忘记了在问题中添加如何修改这个值的部分。
解决方法:
为了从键列表中获取字典的值,可以使用循环迭代键列表中的每个键,并将其用作字典的键来逐步获取值。当循环迭代结束时,最终的值就是所需的结果。
如果用户想要在获取值后修改它,可以存储一个对倒数第二个元素的引用。这样,在获取到最终值之前,可以使用该引用来修改字典中的值。
下面是解决问题的示例代码:
# 获取字典的值 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` 是键列表。第一个代码块用于获取字典的值,而第二个代码块用于在获取到值后修改它。
希望以上解决方法对您有所帮助!