引用字典中的dict元素(python)

时间:2015-08-12 13:00:26

标签: python dictionary

是否可以在创建字典元素的同时从另一个引用字典元素的值?

类似的东西:

d = {key1: value1,
     key2: d[key1] + value2}

4 个答案:

答案 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不是该字典中存在的密钥。

我不确定它是否符合您的需求,但您可以这样做(假设先前已定义key1key2value1value2 ):

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)