如何将一个字典的条款添加到另一个字典?

时间:2018-01-31 13:39:43

标签: python python-3.x list dictionary

让我假设我从这本词典开始:

mydict = {
    'a': [[2,4], [5,6]],
    'b': [[1,1], [1,7,9], [6,2,3]],
    'c': [['a'], [4,5]],
}

我如何将价值追加到' a'但是如果我需要让他们说出来,那就能够添加一把新密钥。我试过的是

plus_min_dict = {} 
plus_min_dict[key] = reference_dataset[key][line_number] 

但是它只给了每个键一个值=显然已经破坏了以前的值,我想更新或追加但如果它不存在仍然能够创建一个新的

编辑:为了澄清,我们假设这是我的初始词典:

mydict = {
        'a': [[2,4]],}

我用其他字典进行其他计算,我们假设它是:

 second_dict = {
        'a': [ [5,6]],
        'b': [[1,1], [1,7,9]],
        'c': [['a'], [4,5]],
    }

这些计算表明我对[5,6]的' a'和[1,7,9]的' b'所以我想让mydict成为:

 mydict = {
        'a': [[2,4], [5,6]],
        'b': [[1,7,9]],  
    }

4 个答案:

答案 0 :(得分:1)

如果我理解你的问题,如果密钥已经存在,你想在字典中附加一个新值。如果是这样,我会使用defaultdict这个原因很简单。使用defaultdict,您可以使用方法+ =来创建(如果不存在)或添加(如果存在)元素:

from collections import defaultdict

# Your dictionaries
mydict = {
    'a': [[2,4], [5,6]],
    'b': [[1,1], [1,7,9], [6,2,3]],
    'c': [['a'], [4,5]],
}

plus_min_dict = {'a': [[3,3]]}

# d is a DefaultDict containing mydict values
d=defaultdict(list,mydict)

# d_new is a DefaultDict containing plus_min_dict dict
d_new = defaultdict(list, plus_min_dict)

# Add all key,values of d in d_new
for k, v in d.items():
    d_new[k] += d[k]

print(d_new)

结果:

defaultdict(<class 'list'>, {'c': [['a'], [4, 5]], 'a': [[3, 3], [2, 4], [5, 6]], 'b': [[1, 1], [1, 7, 9], [6, 2, 3]]})

答案 1 :(得分:0)

要将项目追加到'a',您可以执行以下操作:

mydict['a'] += ['test_item']

或者:

mydict['a'].append('test_item')

答案 2 :(得分:0)

你可以追加:

mydict = {
    'a': [[2,4], [5,6]],
    'b': [[1,1], [1,7,9], [6,2,3]],
    'c': [['a'], [4,5]],
}

mydict['a'].append([7,8])
mydict['d'] = [0,1]
print(mydict)

答案 3 :(得分:0)

使用if else循环

mydict = {'a': [[2,4]],}

second_dict = {
        'a': [ [5,6]],
        'b': [[1,1], [1,7,9]],
        'c': [['a'], [4,5]]}

missing_values = {
        'a': [5,6],
        'b': [1,7,9]}

for key, value in missing_values.items():
    if key in mydict:
        mydict[key ].append(value)
    else:
        mydict[key ] = [value]

print(mydict)

结果:

{'a': [[2, 4], [5, 6]], 'b': [[1, 7, 9]]}