【发布时间】:2018-03-02 21:38:13
【问题描述】:
我有这本词典:
A = {"a": 1, "b":2}
我想写一个变量,而不是上面的初始化,而不是 2,它是 a 值的 4 倍,如果 a 的值发生变化,它就会更新。
我不能这样做:
A={"a": 1, "b": 4*A["a"]}
我该如何处理?
‡:在我的代码中,
flight = {
"dest": "".join(random.choice(string.ascii_uppercase) for n in xrange(3)),
"from": "".join(random.choice(string.ascii_uppercase) for n in xrange(3)),
"not_available_seats": [],
"available_seats": 50,
"uid": uid,
#"price": 10,
"date": datetime.datetime.now()
}
flight["price"] = lambda: (51 - flight["available_seats"])*10
所以当打印 flight() 时,我得到了错误。
【问题讨论】:
-
如果我没记错的话,
{}内的A还不存在,所以A["a"]没有意义。 -
您编辑了问题,但现在很混乱。如果您使用静态值初始化 A ,然后尝试使用动态值重新初始化它(如您的问题中所反映的那样),它将正常工作。如果您只尝试以自引用方式对其进行初始化,那么它将不起作用(请参阅@jpp 的链接)。
-
你能做两个作业吗?即
A={"a": 1}; A["b"]=4*A["a"];。此时,A 存在,并且包含一个带有值的"a"键。 -
@jpp 我也闻到了XY problem
标签: python dictionary