Fixed `swap` between dict items.
This commit is contained in:
parent
244f6056bc
commit
37fed12485
|
@ -4,4 +4,8 @@
|
|||
def swap(d, key1, key2):
|
||||
if key1 == key2:
|
||||
return
|
||||
d[key1], d[key2] = d[key2], d[key1]
|
||||
val1 = d[key1]
|
||||
val1 = val1.copy() if isinstance(val1, dict) else val1
|
||||
val2 = d[key2]
|
||||
val2 = val2.copy() if isinstance(val2, dict) else val2
|
||||
d[key1], d[key2] = val2, val1
|
||||
|
|
|
@ -2081,6 +2081,22 @@ b:
|
|||
b = benedict(d)
|
||||
b.swap("a.y", "b.y")
|
||||
b.swap("b.x", "c.x")
|
||||
r = {
|
||||
"a": {
|
||||
"x": 1,
|
||||
"y": 2,
|
||||
},
|
||||
"b": {
|
||||
"x": 3,
|
||||
"y": 1,
|
||||
},
|
||||
"c": {
|
||||
"x": 2,
|
||||
"y": 3,
|
||||
},
|
||||
}
|
||||
self.assertEqual(b, r)
|
||||
|
||||
b.swap("a", "c")
|
||||
r = {
|
||||
"a": {
|
||||
|
|
Loading…
Reference in New Issue