copy.deepcopy.
import copy
def set_if_not_there(d, fields, default_value=None):
for field in fields:
if not field in d:
d[field] = copy.deepcopy(default_value)
d = { }
set_if_not_there(d, ['cnt1', 'cnt2'], 0)
set_if_not_there(d, ['tags1', 'tags2'], [])
d['cnt1'] += 1
d['tags1'].append('work')
print d
:
>>>
{'tags2': [], 'cnt2': 0, 'cnt1': 1, 'tags1': ['work']}
, , , . :
set_if_not_there(d, ['cnt1', 'cnt2'], 0)
set_if_not_there(d, ['tags1', 'tags2'], [0,1])
d['cnt1'] += 1
d['tags1'].append('work')
print d
:
{'tags2': [0, 1], 'cnt2': 0, 'cnt1': 1, 'tags1': [0, 1, 'work']}
**, :
def set_if_not_there(d, fields, default_value=lambda:None):
for field in fields:
if not field in d:
d[field] = default_value()
d = { }
set_if_not_there(d, ['cnt1', 'cnt2'], lambda:0)
set_if_not_there(d, ['tags1', 'tags2'], lambda:[0,1])