在两个词典中添加不同的变量

时间:2013-05-18 07:34:52

标签: python python-3.x

我需要一点帮助。我是一个新的python编码器。我需要很多帮助。所以,我想在两个词典中添加不同的变量。一个例子是:

x = {'a':1, 'b':2}

y = {'b':1, 'c':2}

我想替换这些值,使其看起来像:

x = {'a':1, 'b':2, 'c':0}

y = {'a':0, 'b':1, 'c':2} 

变量的顺序必须相同。请帮帮我。

2 个答案:

答案 0 :(得分:5)

首先,Python dicts是无序的,但如果您需要订购,可以使用collections.OrderedDict

但是对于普通的dicts,你可以用这种方式添加更多的条目:

x = {'a':1, 'b':2}
y = {'b':1, 'c':2}
x.update({'c':0})
y.update({'b':1})

或者这样:

x.update(c=0)
y.update(b=1)

或者(由iamthepiguy评论)这样:

x['c'] = 0
y['b'] = 1

如果您想同时更新/添加许多条目,可以使用:

x.update({'c':0,'d':5,'x':4}
# or the same in the other way
x.update(c=0,d=5,x=4)

您还可以使用上面显示的方法更改条目。只需使用dict中已有的密钥和新值即可。 x['a']=7

有关dict.update的更多信息,请查看here

答案 1 :(得分:3)

对于OrderedDict示例:

import collections

dx = {'a':1, 'b':2}
dy = {'b':1, 'c':2}

dx['c'] = 0
dy['a'] = 0

x = collections.OrderedDict(sorted(dx.items(), key=lambda t: t[0])) # lambda sorts dictionary items by key, and puts in ordered dictionary
y = collections.OrderedDict(sorted(dy.items(), key=lambda t: t[0]))

结果是:

>>> x
OrderedDict([('a', 1), ('b', 2), ('c', 0)])
>>> y
OrderedDict([('a', 0), ('b', 1), ('c', 2)])

希望能回答你的问题。