gpt4 book ai didi

python - 如何在不使用 eval 的情况下替换字典值中的字符串?

转载 作者:太空宇宙 更新时间:2023-11-03 18:07:41 26 4
gpt4 key购买 nike

例如,我想将“Replacement”替换为“hello”

输入:

D = {
'Name': "String Replacement",
'DictionaryB': {
'Dictionary': 'Replacement of the String'
},
'DictionaryC': {
'AnotherDictionary': {
'name': {
'ReplacementString'
}
}
}
}

结果:

{
'DictionaryB': {
'Dictionary': 'hello of the String'
},
'DictionaryC': {
'AnotherDictionary': {
'name': {
'helloString'
}
}
},
'Name': 'String hello'
}

最佳答案

您需要递归地执行此操作,如下所示

def rec_replacer(current_object):
if isinstance(current_object, str):
return current_object.replace("Replacement", "hello")
elif isinstance(current_object, set):
return {rec_replacer(item) for item in current_object}
return {key: rec_replacer(current_object[key]) for key in current_object}

print(rec_replacer(D))

输出

{
'DictionaryB': {
'Dictionary': 'hello of the String'
},
'DictionaryC': {
'AnotherDictionary': {
'name': set(['helloString'])
}
},
'Name': 'String hello'
}

注意:结果有 set(['helloString']) 因为 {'ReplacementString'} 不是字典,而是 set 对象。

关于python - 如何在不使用 eval 的情况下替换字典值中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26528547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com