我可以使用我仍在定义的词典中的密钥吗?

时间:2016-07-19 14:38:39

标签: python python-2.7

例如,如下所述,是否可以在定义a时调用b

c = dict(
    a = "foo",
    b = a + "bar"
)

或者我只能使用:

c = dict()
c['a'] = "foo"
c['b'] = c['a'] + "bar"

2 个答案:

答案 0 :(得分:2)

这应该重构:

a = "foo"
c = dict(a=a, b=a+"bar")

可以在一行中完成,没有临时变量a,但它并不漂亮:

c = (lambda x: dict(a=x, b=x+"bar"))("foo")

答案 1 :(得分:0)

没有。对于您提供的第一个示例,它是不可能的。秒的例子更像是Pythonic。

如果你真的希望它在一个电话中,你可能没有硬编码值,所以你可以使用:

text = "foo"
c = dict(
    a = text,
    b = text + "bar"
)