【发布时间】:2022-01-17 19:27:18
【问题描述】:
我想了解如何在不改变方法参数的情况下递归地重命名字典列表中的键。
我有以下字典列表:
filters = [
{
'or': [
{
'and': [
{
"column": {
"type": "string",
"name": "field_name"
},
"operator": "==",
"value": "field_value"
},
{
"column": {
"type": "string",
"name": "field_2_name"
},
"operator": "!=",
"value": "field_2_value"
}
]
},
{
'not': [
{
"column": {
"type": "number",
"name": "field_3_name"
},
"operator": "==",
"value": "field_3_value"
}
]
}
]
}]
这是我期望达到的目标:
filters = [
{
'or': [
{
'and': [
{'field': 'field_name', 'op': '==', 'value': 'field_value'},
{'field': 'field_2_name', 'op': '!=', 'value': 'field_2_value'},
]
},
{
'not': [
{'field': 'field_3_name', 'op': '==', 'value': 'field_3_value'}
]
},
],
}
]
有什么办法可以解决这个问题?
谢谢!
【问题讨论】:
-
您不能重命名密钥。您可以使用旧值插入新键并删除旧键:值对。你尝试了什么? minimal reproducible example?
-
without mutation of method parameters是什么意思? -
感谢您的提醒。我的尝试令人困惑,我没有得到任何有用的解决方案来做一个有用的例子。 @tobias_k 成功了!还是谢谢你。
标签: python list dictionary recursion mutation