多级字典添加键值,键对应的值是后面的层级字典
时间: 2023-05-30 19:02:40 浏览: 144
可以使用递归方式来实现多级字典添加键值,下面是一个示例代码:
```python
def add_dict_value(d, keys, value):
"""
给多级字典添加键值
:param d: 多级字典
:param keys: 键列表
:param value: 值
:return: 添加后的多级字典
"""
if len(keys) == 1:
d[keys[0]] = value
else:
key = keys[0]
if key not in d:
d[key] = {}
add_dict_value(d[key], keys[1:], value)
return d
```
使用示例:
```python
d = {}
add_dict_value(d, ['a', 'b', 'c'], 123)
print(d) # {'a': {'b': {'c': 123}}}
```
在上面的示例中,我们给一个空的字典添加键值 `'a' -> 'b' -> 'c' -> 123'`,最后得到的结果是 `{'a': {'b': {'c': 123}}}`。
相关问题
在多级字典中每一级都增加一个键值
可以使用字典的嵌套和递归来实现在多级字典中增加一个键值。以下是一个示例代码:
```
def add_key(d, keys, value):
if len(keys) == 1:
d[keys[0]] = value
else:
if keys[0] not in d:
d[keys[0]] = {}
add_key(d[keys[0]], keys[1:], value)
# 示例用法
my_dict = {}
add_key(my_dict, ['a', 'b', 'c'], 123)
print(my_dict) # 输出 {'a': {'b': {'c': 123}}}
```
在这个示例中,我们定义了一个递归函数`add_key`来增加键值。该函数接收三个参数:字典`d`,键列表`keys`和值`value`。如果`keys`的长度为1,说明已经到达最后一级字典,直接在该字典中增加键值即可。否则,我们首先判断当前键是否已经存在于字典中,如果不存在,则需要先在该字典中创建一个新的字典作为值,然后递归调用`add_key`函数继续增加下一级键值。最终,我们可以通过`my_dict`字典来验证程序的正确性。
将List中的值创建多级字典
下面是一个示例代码,可以将List中的值创建为多级字典:
```
my_list = ['a', 'b', 'c', 'd', 'e']
my_dict = {}
current_dict = my_dict
for item in my_list:
current_dict[item] = {}
current_dict = current_dict[item]
print(my_dict)
```
输出:
```
{'a': {'b': {'c': {'d': {'e': {}}}}}}
```
首先,我们创建一个空字典my_dict。然后,我们定义一个current_dict,它最初指向my_dict。
我们遍历my_list中的每个元素,并将其添加到current_dict中作为键,并将其值设置为一个新的空字典。接下来,我们将current_dict更新为新创建的空字典,这样我们就可以将下一个元素添加到正确的位置。
最后,我们打印my_dict,以检查我们是否成功创建了多级字典。