我正在尝试跟踪一组复杂的变量并从字典中更新它们。如果字典不适合此处,请告知我们。
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发生变化,我不知道如何对密钥内部对内的值进行算术运算。 对不起,我很新,我知道这可能只是一个语法问题。
答案 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}}