我想在我的词典中的位置2添加17。当我运行此代码时,到处都有17。
dic = dict.fromkeys(range(4), [])
print("dic begin : ", dic)
dic[1].append(17)
print("dic end : ", dic)
我得到此输出:
('dic begin:',{0:[],1:[],2:[],3:[]})('dic end:',{0:[17],1:[17],2:[17],3:[17]})
我在做什么错?
因此,当您使用dict.fromkeys(keys, value)
方法时,仅传递值的引用!因此,当您进行突变时,所有这些人都会被突变。您可以使用此-
dic = {i:[] for i in range(4) }
print("dic begin : ", dic)
dic[1].append(17)
print("dic end : ", dic)
Out-
dic begin : {0: [], 1: [], 2: [], 3: []}
dic end : {0: [], 1: [17], 2: [], 3: []}