用python初始化字典

2024-10-03 04:28:44 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有方法可以使用一行并使用dict键“a”和“b”引用初始化主体中的dict键

示例:

def func(a,b)
    return {"a":longComputation1(), "b":longComputation2(), sum_a_b:?????}

请不要改变代码的语义。这只是一个例子。在


Tags: 方法代码示例returndef语义dict例子
3条回答

简而言之:不

这必须在多条线路上完成:

def func():
    d = {"a": longComputation1(), 
         "b": longComputation2()}
    d.update(sum_a_b = d['a'] + d['b'])
    return d

使用函数创建dict并在名为sum的键中定义sum的键的名称:

def sum_dict(**kwargs):
    result = {}
    total = 0
    sum_keys = kwargs["sum"]
    del kwargs["sum"]

    for key, value in kwargs.items():
        val = value()
        result[key] = val
        if key in sum_keys:
            total += val

    result["sum_" + "_".join(sum_keys)] = total

    return result

print(sum_dict(a=lambda: 3,b=lambda: 2,c=lambda: 14, sum=["a", "b"]))
# {'a': 3, 'c': 14, 'b': 2, 'sum_a_b': 5}

无法从未创建的dict访问密钥。在

另一种方法是创建一个自己的dict类。在

使用函数参数:

>>> def func(a, b):
...     return {"a": a, "b": b, "sum_a_b": a + b}
...
>>> func(1, 2)
{'a': 1, 'b': 2, 'sum_a_b': 3}

更新在我发布上述代码后,问题发生了变化;使用jornsharpe的解决方案。在

相关问题 更多 >