で始まります
OrderedDict([('a', 1), ('c', 3), ('b', 2)])
で終わる可能性はありますか
OrderedDict([('a', 1), ('__C__', 3), ('b', 2)])
'__C__'
アイテムが注文を維持する前後'b'
にあることを確認しますか?'a'
で始まります
OrderedDict([('a', 1), ('c', 3), ('b', 2)])
で終わる可能性はありますか
OrderedDict([('a', 1), ('__C__', 3), ('b', 2)])
'__C__'
アイテムが注文を維持する前後'b'
にあることを確認しますか?'a'
あなたは試すことができます:
>>> d = OrderedDict([('a', 1), ('c', 3), ('b', 2)])
>>> d
OrderedDict([('a', 1), ('c', 3), ('b', 2)])
>>> d2 = OrderedDict([('__C__', v) if k == 'c' else (k, v) for k, v in d.items()])
>>> d2
OrderedDict([('a', 1), ('__C__', 3), ('b', 2)])
現在のディクショナリオブジェクトを変更する場合:
def change_key(self, old, new):
for _ in range(len(self)):
k, v = self.popitem(False)
self[new if old == k else k] = v
OrderedDict
これは、 (その長さを使用して)全体を反復処理し、最初の項目を(に渡すFalse
ことによって.popitem()
:このメソッドのデフォルトは最後の項目をポップすることです)k
およびv
(それぞれキーと値を表す)にポップすることによって機能します。次に、このキーと値のペア、または元の値を持つ新しいキーをの最後に挿入しますOrderedDict
。
dictのサイズ全体に対してこのロジックを繰り返すことにより、dictを効果的に完全に回転させ、元の順序を再現します。