Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python嵌套字典作为参数_Python_Dictionary_Key - Fatal编程技术网

python嵌套字典作为参数

python嵌套字典作为参数,python,dictionary,key,Python,Dictionary,Key,具有以下示例词典: dict = { 'key1': { 'nested_key1': { 'more_nested_key1': 'a_value' } }, 'key2': { 'a_key': 'some_value' } } 我需要一个函数,它接受dict和任意数量的嵌套键,并对值执行操作。例如: def replace(dict, '['key1']['nested_key1'][

具有以下示例词典:

dict = {
    'key1': {
        'nested_key1': {
            'more_nested_key1': 'a_value'
        }
    },
    'key2': {
        'a_key': 'some_value'
    }
}
我需要一个函数,它接受dict和任意数量的嵌套键,并对值执行操作。例如:

def replace(dict, '['key1']['nested_key1']['more_nested_key1']', 'new_value')

将“a_值”替换为“新_值”。我是python新手,你知道如何实现吗?

只需重复使用除最后一个键之外的键,每次都记下下下一个dict。然后,对于最后一个键,将最后一个dict中的项设置为value

用法:

replace(dict, 'key1', 'nested_key1', 'more_nested_key1', value='new_value')

除了最后一个键外,只需重复这些键,每次都要记下下下一个dict。然后,对于最后一个键,将最后一个dict中的项设置为value

用法:

replace(dict, 'key1', 'nested_key1', 'more_nested_key1', value='new_value')

您可以将键列表传递给函数,遍历除最后一个之外的所有键,直到找到最里面的字典,然后分配给最后一个键:

def replace(dict, keys, value):
    d = dict
    for key in keys[:-1]:
        d = d[key]
    d[keys[-1]] = value

您可以将键列表传递给函数,遍历除最后一个之外的所有键,直到找到最里面的字典,然后分配给最后一个键:

def replace(dict, keys, value):
    d = dict
    for key in keys[:-1]:
        d = d[key]
    d[keys[-1]] = value

在函数内部你可以做dict['key1']['nested_key1']['more_nested_key1']='new_value'@Rohit Pandey我想他们想把键作为参数传递给函数。在函数内部你可以做dict['key1']['nested_key1']['more_nested_key1']='new_value'@Rohit Pandey我想他们想把键作为参数传递给函数。