是否可以在创建字典元素的同时从另一个引用字典元素的值?
类似的东西:
d = {key1: value1,
key2: d[key1] + value2}
答案 0 :(得分:0)
由于字典在您尝试引用时尚未定义,因此无法实现。但是,您可以将其分解为多行,以便在后续语句中引用字典:
>>> d = {"key1": "value1"}
>>> d["key2"] = d["key1"] + "value2"
>>> d
{'key2': 'value1value2', 'key1': 'value1'}
答案 1 :(得分:0)
没有,
您正在定义d
。
您将收到错误NameError: name 'd' is not defined
答案 2 :(得分:0)
不是你想要的方式。在您尝试key2: d[0] + value2
时,d
仍在定义中;换句话说,它还不存在,因此你无法访问它。
除此之外,d [0]也将是未定义的,因为0不是该字典中存在的密钥。
我不确定它是否符合您的需求,但您可以这样做(假设先前已定义key1
,key2
,value1
和value2
):
d = {key1: value1}
d[key2] = d[key1] + value2
答案 3 :(得分:0)
改为使用班级:
class TwoKeys(object):
def __init__(self, val1, val2):
self.val1 = val1
self.val2 = val2
@property
def key1(self):
return self.val1
@property
def key2(self):
return self.val1 + self.val2
xmpl = TwoKeys(1,2)
print(xmpl.key1, xmpl.key2)
xmpl.val1 = 99
print(xmpl.key1, xmpl.key2)