根据同一字典中的另一个值设置值,python

Value set according to another value in the same dictionary, python

我该如何解决这个问题?

d = {
'a':3, 
'b':(d['a']*3)
}

print(d)

导致错误,因为我尝试使用字典名称设置 'b' 的值,显然 python 不喜欢那样。我该如何解决这个问题?

另外:

l = [[2], [(l[0][0]*2)]]

print(l)

有同样的问题。

先给变量赋值:

x = 3
d = {'a': x, 'b': x*3}

y = 2
l = [[y], [y*2]]

考虑到赋值的工作方式——首先评估 RHS 表达式,然后才将结果对象绑定到 LHS——这是意料之中的:您不能引用尚未在当前范围。

解决方案要么使用一个中间变量作为您要重用的值,如兰博的回答中所述,要么首先构建 dict(或 list 或其他)第一个密钥或 index/value 对然后构建另一个,即:

d = {"a", 3}
d["b"] = d["a"] * 3