如何在dict创建过程中从另一个构建Python dict值?

Rid*_*del 3 python dictionary

我想构建一个dict,其中一个值是从另一个值构建的.

我想写作

d = {
    'a':1,
    'b':self['a']+1
}
Run Code Online (Sandbox Code Playgroud)

但它没有按预期工作:

>>> {'a':1, 'b':self['a']+1}
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
NameError: name 'self' is not defined
Run Code Online (Sandbox Code Playgroud)

那么,我怎样才能实现Python技巧呢?(我正在使用Python 2.4)

Mar*_*ers 5

您无法引用尚未创建的字典.只需创建字典分配其他键:

d = {'a': 1}
d['b'] = d['a'] + 1
Run Code Online (Sandbox Code Playgroud)

可替代地,将值设置为一个单独的变量第一,然后创建词典:

a_value = 1
d = {'a': a_value, 'b': a_value + 1}
Run Code Online (Sandbox Code Playgroud)