在嵌套字典中分发列表的值可以通过遍历字典的方式实现。以下是一个示例代码:
def distribute_list_values(dictionary):
for key, value in dictionary.items():
if isinstance(value, list):
distribute_list_values_in_dict(value)
elif isinstance(value, dict):
distribute_list_values(value)
def distribute_list_values_in_dict(dictionary):
for key, value in dictionary.items():
if isinstance(value, list):
for i, item in enumerate(value):
dictionary[key + str(i)] = item
del dictionary[key]
# 示例嵌套字典
nested_dict = {
'key1': 'value1',
'key2': ['value2', 'value3'],
'key3': {
'subkey1': 'subvalue1',
'subkey2': ['subvalue2', 'subvalue3']
}
}
distribute_list_values(nested_dict)
print(nested_dict)
运行以上代码,将会输出以下结果:
{
'key1': 'value1',
'key2': 'value2',
'key20': 'value3',
'key3': {
'subkey1': 'subvalue1',
'subkey2': 'subvalue2',
'subkey21': 'subvalue3'
}
}
通过以上代码,我们实现了在嵌套字典中分发列表的值。具体实现步骤如下:
distribute_list_values
和distribute_list_values_in_dict
。前者用于遍历字典的键值对,后者用于遍历字典中的字典。distribute_list_values
函数遍历字典的键值对,如果值是列表,则调用distribute_list_values_in_dict
函数进行处理;如果值是字典,则递归调用distribute_list_values
函数。distribute_list_values_in_dict
函数遍历字典的键值对,如果值是列表,则遍历列表中的每个元素,将其添加到字典中,并删除原来的键值对。这样,我们就可以在嵌套字典中分发列表的值。对于以上示例代码中的嵌套字典,输出结果中的key2
被拆分为key2
和key20
,key3
中的subkey2
被拆分为subkey2
和subkey21
,并且列表中的值被分发到相应的键中。
领取专属 10元无门槛券
手把手带您无忧上云