Changes between Version 8 and Version 9 of Python


Ignore:
Timestamp:
06/16/06 19:40:24 (18 years ago)
Author:
atzm
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Python

    v8 v9  
    112112longitude: 141.15 
    113113}}} 
     114 
     115== dict 同士のマージ == 
     116 * dict.update() だと同じキーを持つ値が上書きされてしまうので,上書きせずに足し合わせたりできる関数が欲しかった. 
     117 * ただし,第一引数について破壊的,末端の value が数値以外に色々混ざってる時にどうなるかは知らん,という欠点あり. 
     118 
     119{{{ 
     120#!python 
     121def merge(my_dict, new_dict, mergetype='add'): 
     122    for k, v in new_dict.iteritems(): 
     123        try: 
     124            if isinstance(v, dict): 
     125                merge(my_dict[k], v, mergetype) 
     126            else: 
     127                my_dict[k] = getattr(my_dict[k], '__%s__' % mergetype)(v) 
     128        except KeyError: 
     129            my_dict[k] = v 
     130    return my_dict 
     131}}}