在循环键以更新值时,所有键值都在dict中更新?

时间:2018-06-18 01:42:16

标签: python python-2.7 list dictionary defaultdict

a = defaultdict(int) 
a = a.fromkeys(["a","b","c"],[0,0])
print a
i = 1
j = 1
for k in a.keys():
    print a
    print a[k][0], a[k][1]
    a[k][0] += i
    a[k][1] += j
    i += 1
    j = i*2
print a

在输出中,它显示了循环中每次迭代的所有键都被更新,而不是特定迭代的键。这是输出:

defaultdict(None, {'a': [0, 0], 'c': [0, 0], 'b': [0, 0]})
defaultdict(None, {'a': [0, 0], 'c': [0, 0], 'b': [0, 0]})
0 0
defaultdict(None, {'a': [1, 1], 'c': [1, 1], 'b': [1, 1]})
1 1
defaultdict(None, {'a': [3, 5], 'c': [3, 5], 'b': [3, 5]})
3 5
defaultdict(None, {'a': [6, 11], 'c': [6, 11], 'b': [6, 11]})

0 个答案:

没有答案