我在这里需要一点帮助。我是一个新的 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}
变量的顺序必须相同。请帮我。
我在这里需要一点帮助。我是一个新的 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}
变量的顺序必须相同。请帮我。
第一件事是,Python dicts 是无序的,但如果你需要排序,你可以使用collections.OrderedDict。
但是对于普通的字典,您可以通过这种方式添加更多条目:
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)
您还可以使用上面显示的方法更改条目。只需使用字典中已经存在的键和新值,例如。x['a']=7
.
有关 dict.update 的更多信息,请看这里
对于 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)])
希望这能回答你的问题。