如何记忆键值元素更新Python语言中的反转字典?

时间:2016-05-23 16:41:19

标签: python dictionary

每次在键值方向上添加新键时,我都想修改字典d={}更新值。 最后的字典是:

d={0: [1, 2, 3], 1: [0, 2, 3], 2: [0, 1, 3], 3: [0, 1, 2], 4: [3, 2, 1, 0], 5: [3, 2, 1, 0], 6: [3, 2, 1, 0]}

但是我想要另外一个:

d={0: [1, 2, 3, 4, 5, 6], 1: [0, 2, 3, 4, 5, 6], 2: [0, 1, 3, 4, 5, 6], 3: [0, 1, 2, 4, 5, 6], 4: [3, 2, 1, 0], 5: [3, 2, 1, 0], 6: [3, 2, 1, 0]}

我的代码是:

d={}
s = [(3, 0.25), (2, 0.25), (1, 0.25), (0, 0.25)]
for i in range(0, 4):
    n = []
    for j in range(0, 4):
        if i != j:
           n.append(j)
           d[i] = n
print d

这里以正确的方式打印d

d={0: [1, 2, 3], 1: [0, 2, 3], 2: [0, 1, 3], 3: [0, 1, 2]}

然后,我还补充说:

for i in range(4, 7):
    n = []
    for j in range(0, 4):
        k = s[j][0]
        n.append(k)
        d[i] = n
print d

代码的最后一部分给了我之前解释过的'错误'。我该如何修改代码?

2 个答案:

答案 0 :(得分:0)

我想你需要编写一个函数:

  1. 为您插入键 - 值(“list-of-keys”列表)对,
  2. 更新分配给“list-of-keys”中的键的值(列表)。

答案 1 :(得分:0)

这是正确的实施:

for i in range(4, 7):
n = []
   for j in range(0, 4):
       k = s[j][0]
       n.append(k)
       d[i] = n
   # adding this for-loop it works
   for k in n:
       d[k].append(i)

print d