Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
I c'ant使用.append()通过python将值附加到字典中_Python_Python 3.x_Dictionary_Append - Fatal编程技术网

I c'ant使用.append()通过python将值附加到字典中

I c'ant使用.append()通过python将值附加到字典中,python,python-3.x,dictionary,append,Python,Python 3.x,Dictionary,Append,我想在字典的第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

我想在字典的第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.fromkeyskeys,value方法时,只传递值的引用!所以当你变异一个的时候,所有的人都会变异。你可以用这个-

dic = {i:[] for i in range(4) }
print("dic begin : ", dic)

dic[1].append(17)
print("dic end : ", dic)
出去-


通过将列表构造函数传递给dict.fromkeys,您将为每个键提供与其值相同的列表,从而可能复制。您可能更愿意使用此选项来回答您的问题吗?
dic begin :  {0: [], 1: [], 2: [], 3: []}
dic end :  {0: [], 1: [17], 2: [], 3: []}