gpt4 book ai didi

python - 根据键更新嵌套字典中的值

转载 作者:行者123 更新时间:2023-12-04 07:28:53 24 4
gpt4 key购买 nike

我有一个嵌套字典,我想根据其键值更新项目的值。
例如,我有以下字典,我想将 key=='p' 的每个项目的值设置为 1。

my_dict = {'p': 0, 'nested_dict': {'p': 0, 'a': 2}}
对于常规字典(非嵌套),更新方法提供了一个简单的单行解决方案:
my_dict.update((x, 1) for x, y in my_dict.items() if x=='p')
我正在为嵌套字典的情况寻找类似的解决方案

最佳答案

如果字典的最大深度已知且恒定,并且 'p' s 总是出现在相同的深度,这可以不用递归解决。在所有其他情况下,都需要递归方法。根据示例问题和您的评论,我将假设第二个是正确的。这是一个递归解决方案:

def setPto1(dct):
return {k: setPto1(v) if isinstance(v, dict) else [v, 1][k=='p'] for k, v in dct.items()}
因此,您基本上使用递归字典理解遍历键值对。你的方法离你不远了。如果有什么你不明白的,请发表评论。
[v, 1][k=='p']让你感到不安,你可以用更直接的方式代替它 (1 if k=='p' else v) .他们是一样的东西。

关于python - 根据键更新嵌套字典中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68064256/

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