R
Raymond Hettinger
[jsaul]
Your way seems clean enough to me.
One other approach is to use items() so you can modify dict1 as you go:
for key, value in dict1.items():
if value > 3:
dict2[key] = value
del dict1[key]
Raymond Hettinger
I have to split a dict into two dicts. Depending on their values,
the items shall remain in the original dict or be moved to another
one and at the same time be removed from the original dict.
OK, this is how I do it right now:
dict1 = { "a":1, "b":3, "c":5, "d":4, "e":2 }
dict2 = {}
klist = []
for key in dict1:
if dict1[key] > 3: # some criterion
dict2[key] = dict1[key]
klist.append(key)
for key in klist:
del dict1[key]
print dict1
print dict2
That means that I store the keys of the items to be removed from
the original dict in a list (klist) and subsequently remove the
items using these keys.
Is there an "even more pythonic" way?
Your way seems clean enough to me.
One other approach is to use items() so you can modify dict1 as you go:
for key, value in dict1.items():
if value > 3:
dict2[key] = value
del dict1[key]
Raymond Hettinger