昌旭的博客


机器学习、编程和数学


合并两个Python字典

原帖在此

合并两个Python字典,如:

1
2
>>> x = {'a': 1, 'b': 2}
>>> y = {'c': 3, 'd': 4}

希望得到:

1
2
>>> z = {'a':1, 'b':2, 'c':3, 'd':4}
>>> z = {'a':1, 'b':2, 'c':3, 'd':4}

解决方案有两种

方法一

本方法速度不如第二种方法快:

1
2
3
4
5
>>> x = {'a': 1, 'b': 2}
>>> y = {'c': 3, 'd': 4}
>>> z = dict(x.items() + y.items())
>>> z
{'a':1, 'b':2, 'c':3, 'd':4}

在Python3下略有不同:

1
2
3
4
5
>>> x = {'a': 1, 'b': 2}
>>> y = {'c': 3, 'd': 4}
>>> z = dict(list(x.items()) + list(y.items()))
>>> z
{'a':1, 'b':2, 'c':3, 'd':4}

方法二

本方法较方法一速度更快

1
2
3
4
5
>>> x = {'a': 1, 'b': 2}
>>> y = {'c': 3, 'd': 4}
>>> z = dict(x, **y)
>>> z
{'a':1, 'b':2, 'c':3, 'd':4}

或者一种等价写法:

1
2
3
4
5
6
>>> x = {'a': 1, 'b': 2}
>>> y = {'c': 3, 'd': 4}
>>> z = x.copy() # 或z = dict(x)
>>> z.update(y)
>>> z
{'a':1, 'b':2, 'c':3, 'd':4}