Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.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
在python中将字典添加到另一个字典_Python_Dictionary - Fatal编程技术网

在python中将字典添加到另一个字典

在python中将字典添加到另一个字典,python,dictionary,Python,Dictionary,这是我在另一本字典中添加字典的代码 dict_temp = {} logs = {} for d in e: count +=1 dict_temp['email']= d["sent_to"] dict_temp['log_id']= d["unique_arguments"] print dict_temp logs[count] = dict_temp dict_temp.clear()

这是我在另一本字典中添加字典的代码

dict_temp = {}
logs = {}
for d in e:
        count +=1
        dict_temp['email']= d["sent_to"]
        dict_temp['log_id']= d["unique_arguments"]
        print dict_temp
        logs[count] = dict_temp
        dict_temp.clear()
    print logs 
dictionary dict_temp是完美构建的,但是当我将此dictionary添加到日志dictiononar中时,当我打印它时请查看字典,它是空的。。 这是输出

    {'log_id': u'log_1_taqi.official@gmail.com', 'email': u'taqi.official@gmail.com'}                                                                                                            
{'log_id': u'log_1_taqi.hass@cogilent.com', 'email': u'taqi.hass@cogilent.com'}                                                                                                              
{'log_id': u'log_1_taqi.official@gmailllllll.com', 'email': u'taqi.official@gmailllllll.com'}                                                                                                
{'log_id': u'log_2_taqi.official@gmail.com', 'email': u'taqi.official@gmail.com'}                                                                                                            
{'log_id': u'log_2_taqi.hass@cogilent.com', 'email': u'taqi.hass@cogilent.com'}                                                                                                              
{'log_id': u'log_2_taqi.official@gmailllllll.com', 'email': u'taqi.official@gmailllllll.com'}                                                                                                
{'log_id': u'log_4_taqi.official@gmail.com', 'email': u'taqi.official@gmail.com'}                                                                                                            
{'log_id': u'log_4_taqi.hass@cogilent.com', 'email': u'taqi.hass@cogilent.com'}                                                                                                              
{'log_id': u'log_4_taqi.official@gmailllllll.com', 'email': u'taqi.official@gmailllllll.com'}                                                                                                
{'log_id': u'log_5_taqi.official@gmail.com', 'email': u'taqi.official@gmail.com'}                                                                                                            
{'log_id': u'log_5_taqi.hass@cogilent.com', 'email': u'taqi.hass@cogilent.com'}                                                                                                              
{'log_id': u'log_5_taqi.official@gmailllllll.com', 'email': u'taqi.official@gmailllllll.com'}                                                                                                
{'log_id': u'log_6_taqi.official@gmail.com', 'email': u'taqi.official@gmail.com'}                                                                                                            
{'log_id': u'log_6_taqi.hass@cogilent.com', 'email': u'taqi.hass@cogilent.com'}                                                                                                              
{'log_id': u'log_6_taqi.official@gmailllllll.com', 'email': u'taqi.official@gmailllllll.com'}                                                                                                
{'log_id': u'log_7_taqi.official@gmail.com', 'email': u'taqi.official@gmail.com'}                                                                                                            
{'log_id': u'log_7_taqi.hass@cogilent.com', 'email': u'taqi.hass@cogilent.com'}                                                                                                              
{'log_id': u'log_7_taqi.official@gmailllllll.com', 'email': u'taqi.official@gmailllllll.com'}                                                                                                
{'log_id': u'log_8_taqi.official@gmail.com', 'email': u'taqi.official@gmail.com'}                                                                                                            
{'log_id': u'log_8_taqi.hass@cogilent.com', 'email': u'taqi.hass@cogilent.com'}                                                                                                              
{'log_id': u'log_8_taqi.official@gmailllllll.com', 'email': u'taqi.official@gmailllllll.com'}                                                                                                
{1: {}, 2: {}, 3: {}, 4: {}, 5: {}, 6: {}, 7: {}, 8: {}, 9: {}, 10: {}, 11: {}, 12: {}, 13: {}, 14: {}, 15: {}, 16: {}, 17: {}, 18: {}, 19: {}, 20: {}, 21: {}}  
您正在一次又一次地添加相同的dictionary对象。您没有添加副本。因此,对该词典的所有引用都将显示相同的内容:

>>> inner = {}
>>> outer = {}
>>> inner['foo'] = 'bar'
>>> outer['inner_key'] = inner
>>> outer
{'inner_key': {'foo': 'bar'}}
>>> inner['foo'] = 'baz'
>>> outer
{'inner_key': {'foo': 'baz'}}
>>> inner.clear()
>>> outer
{'inner_key': {}}
>>> outer['another_key'] = inner
>>> outer
{'another_key': {}, 'inner_key': {}}
>>> inner['foo'] = 'spam'
>>> outer
{'another_key': {'foo': 'spam'}, 'inner_key': {'foo': 'spam'}}
请注意,在打印
外部
词典时,如何反映对
内部
的任何更改,因为两者共享同一对象。添加更多键指向这一词典只会创建更多引用,而不是副本:

>>> id(inner), id(outer['inner_key']), id(outer['another_key'])
(4413825104, 4413825104, 4413825104)
>>> inner is outer['inner_key']
True
>>> inner is outer['another_key']
True
使用新词典:

另一种选择是使用创建字典的(浅层)副本,但由于您无论如何都要完全替换两个键,因此在这里这样做毫无意义。

提示:检查
[id(x)for x in logs.values()]
logs = {}
for d in e:
    count +=1
    new_dict = {'email': d["sent_to"], 'log_id': d["unique_arguments"]}
    logs[count] = new_dict