python - 如何将复杂字典的所有值设置为相同的值?

标签 python dictionary key

给出一个非常复杂的字典 dict_a,即一些关键对应于简单值 (level-1),但其他许多对应于另一个字典 (level-n).

我的问题是如何将其所有值(无论是 level-1 还是 level-n)设置为一个值,比如 100。

例如:

a = 10
b = {1: 11, 2: 22, 3{1: 13, 2: {4: 33}}}
c = {1: a, 2: b}

如何将dict c的值设置为0?

最佳答案

简单的递归函数应该可以工作:

def setdictvalto(d, value):
    for k in d:
        if isinstance(d[k], dict):
            setdictvalto(d[k], value)
        else:
            d[k] = value

演示:

>>> setdictvalto(c, 100)
>>> c
{1: 100, 2: {1: 100, 2: 100, 3: {1: 100, 2: {4: 100}}}}

关于python - 如何将复杂字典的所有值设置为相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27690057/

相关文章:

python - 与 Pandas 匹配的单数和复数单词

python - 当我将带有 self 引用的列表分配给带有切片语法 `mylist[:] = [mylist, mylist, ...]` 的列表副本时,会发生什么?

python - 将以元组为键的字典转换为包含键和值的元组

dictionary - 来自 CMU 发音数据库的押韵词典

c# - 将对象转换为 Dictionary<TKey, TValue>

json - jq:将查找键作为字段包含在结果值中

python - 2-dim 字典,键为字符串

python - Apache Flink : Kafka connector in Python streaming API, "Cannot load user class"

Python - 轻松将文本文件内容转换为字典值/键

python - 如何将文件结构表示为 python 对象