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

根据同一字典中的另一个值(python)设置的值,python,list,dictionary,key-value,Python,List,Dictionary,Key Value,我将如何解决这个问题 d = { 'a':3, 'b':(d['a']*3) } print(d) 结果导致了一个错误,因为我试图使用字典的名称设置'b'的值,而python显然不喜欢这样。我该怎么解决这个问题 此外: 具有相同的问题。首先将值分配给变量: x = 3 d = {'a': x, 'b': x*3} y = 2 l = [[y], [y*2]] 给定赋值的工作方式-RHS表达式首先求值,然后结果对象才绑定到LHS-,这是意料之中的:您不能引用当前范围中尚未创建的名称 解决

我将如何解决这个问题

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

print(d)
结果导致了一个错误,因为我试图使用字典的名称设置'b'的值,而python显然不喜欢这样。我该怎么解决这个问题

此外:


具有相同的问题。

首先将值分配给变量:

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

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

给定赋值的工作方式-RHS表达式首先求值,然后结果对象才绑定到LHS-,这是意料之中的:您不能引用当前范围中尚未创建的名称

解决方案是使用中间变量作为要重用的值,如lambo的回答中所述,或者首先使用第一个键或索引/值对构建
dict
(或
list
或其他什么),然后构建另一个,即:

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

这当然会起作用,但这只是整个代码的一个缩影版本,我不认为数百个变量都是整洁的,如果我把它作为变量,我就不需要这个列表了。考虑到赋值的工作方式-RHS表达式首先被求值,然后结果对象才绑定到LHS-,这是意料之中的:您不能引用当前作用域中尚未创建的名称。您可以将此评论作为答案发布吗?请执行以下操作。您现在可以删除自己的重新发布。您如何知道另一个键在dict中?
d = {"a", 3}
d["b"] = d["a"] * 3