我需要一点帮助。我是一个新的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}
变量的顺序必须相同。请帮帮我。
答案 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)])
希望能回答你的问题。