0

我在这里需要一点帮助。我是一个新的 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} 

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

4

2 回答 2

5

第一件事是,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 的更多信息,请看这里

于 2013-05-18T07:41:37.300 回答
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)])

希望这能回答你的问题。

于 2013-05-18T07:56:00.560 回答