更新字典中的跟踪器变量

时间:2017-08-20 03:03:28

标签: python python-3.x

我正在尝试跟踪一组复杂的变量并从字典中更新它们。如果字典不适合此处,请告知我们。

a = 1
b = 1
c = 1
dict = {a: [(b, c)]}    # {1: [(1, 1)]}
a = 1
b = 1
c = 2
dict = {a: [(b, c)]}    # {1: [(1, 2)]}
a = 1
b = 2
c = 1
dict = {a: [(b, c), (b, c)]}    # {1: [(1, 2), (2, 1)]}
a = 2
b = 1
c = 1
dict =    # {1: [(1, 2), (2, 1)], 2: [(1, 1)]}
a = 1
b = 1
c += 1
dict =    # {1: [(1, 3), (2, 1)], 2: [(1, 1)]}

请注意,这不是可行的Python代码,只是我试图跟踪的四个过程的示例。如果更改,我想要一个新密钥,如果b更改我想在a的相应密钥中有一对新值,如果c更改,我想更新现有的a:(b,c)。

给出现有字典的更多例子:

a = 2
b = 4
c = 1
dict =    # {1: [(1, 3), (2, 1)], 2: [(1, 1), (4, 1)]}
a = 6
b = 3
c = 1
dict =    # {1: [(1, 3), (2, 1)], 2: [(1, 1), (4, 1)], 6: [(3, 1)]}

我的问题基本上是我不知道如何语法:

  • 更新c值的过程,或者甚至是否可能。

  • 在不替换现有对的情况下向现有密钥添加新的(b,c)对

好的,有人要求看看我尝试过的东西......所以我可以明显地做第一个。     dict [a] = [(b,c)]

如果b改变,我不知道如何将它添加到现有密钥而不替换现有的[(b,c)]对 如果c发生变化,我不知道如何对密钥内部对内的值进行算术运算。 对不起,我很新,我知道这可能只是一个语法问题。

1 个答案:

答案 0 :(得分:1)

任何不使用dict dict的理由,例如:

>>> d = {1: {1: 1}}
>>> d[1][1] = 2
>>> d
{1: {1: 2}}
>>> d[1][2] = 1
>>> d
{1: {1: 2, 2: 1}}