【问题标题】:Value set according to another value in the same dictionary, python根据同一字典中的另一个值设置的值,python
【发布时间】:2016-04-23 22:35:08
【问题描述】:

我该如何解决这个问题?

d = {
'a':3, 
'b':(d['a']*3)
}

print(d)

导致错误,因为我尝试使用字典的名称设置 'b' 的值,显然 python 不喜欢那样。我该如何解决这个问题?

还有:

l = [[2], [(l[0][0]*2)]]

print(l)

有同样的问题。

【问题讨论】:

  • 考虑到赋值的工作原理——首先评估 RHS 表达式,然后才将结果对象绑定到 LHS——这是意料之中的:你不能引用一个没有被尚未在当前范围内创建。
  • 你能把这条评论作为答案发表吗
  • 完成,您现在可以删除自己的转发。
  • 你怎么知道另一个键在字典里?

标签: python list dictionary key-value


【解决方案1】:

先给变量赋值:

x = 3
d = {'a': x, 'b': x*3}

y = 2
l = [[y], [y*2]]

【讨论】:

  • 那当然可以,但这只是整个代码的缩影,我不认为数百个变量会整齐,如果我把它作为变量,我就不需要无论如何列表。
【解决方案2】:

考虑到赋值的工作原理——首先评估 RHS 表达式,然后才将结果对象绑定到 LHS——这是意料之中的:您不能引用当前尚未创建的名称范围。

解决方案是使用中间变量作为要重用的值,如兰博的回答中所述,或者首先使用第一个键或索引/值构建 dict(或 list 或其他)对然后构建另一个,即:

d = {"a", 3}
d["b"] = d["a"] * 3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 2018-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多