根据同一字典中的另一个值(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