0

ここで少し助けが必要です。私は新しい Python コーダーです。私はたくさんの助けが必要です。したがって、2 つの辞書に異なる変数を追加したいと考えています。例は次のとおりです。

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 dict は順序付けされていませんが、順序付けが必要な場合は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 に答える