【发布时间】:2014-07-13 09:30:13
【问题描述】:
我有一本像这样的字典:
Data = {
"weight_factors" : {
"parameter1" : 10,
"parameter2" : 30,
"parameter3" : 30
},
"other_info" : {
}
}
我想得到键 "weight_factors" 下所有值的总和:
sum = Data["weight_factors"]["parameter1"] +
Data["weight_factors"]["parameter2"] +
Data["weight_factors"]["parameter3"]
目前,为了避免重复输入Data["weight_factors"],我使用如下命令:
d = Data["weight_factors"]
d["parameter1"] + d["parameter2"] + d["parameter3"]
但是,我想应该有一个操作符可以做同样的事情,而不是将Data["weight_factors"] 存储为中间变量。我想知道这样的命令或运算符是否存在。
Data["weight_factors"]<unknown operator>(["parameter1"] +
["parameter2"] +
...
["parametern"])<unknown operator>
编辑: 在上面给出的示例中,它只是一个求和运算。但它可能是:
Data["weight_factors"]["parameter1"] * Data["weight_factors"]["parameter2"] + Data["weight_factors"]["parameter3"]
但我不想重复输入Data["weight_factors"]。这就是我正在寻找的东西......我不知道这样的运营商是否存在。 (在 MATLAB 中,单元结构存在这样的东西。
【问题讨论】:
-
我发现@iCodez的答案更好;我不必导入模块...我可能会使用
'.itervalues()'来实现。 -
哦,所以您只是在问如何从字典中获取值?有人可能会将此标记为重复问题...
-
正如我在问题中所写,我正在搜索
<unknown operator>,但找不到任何类似或相关的内容。因此,我需要将其作为一个新问题提出。即使在给我的问题命名时,我也不确定如何陈述它(可以通过我的编辑历史来检查)...... -
@AaronHall,例如在上面给出的示例中,它只是一个求和运算。但例如可以是:
Data["weight_factors"]["parameter1"]*Data["weight_factors"]["parameter2"]+Data["weight_factors"]["parameter3"]。但我不想重复输入Data["weight_factors"]。这就是我正在寻找的东西。
标签: python dictionary