blob: d537b159adfe7864cc919eaaa2c718dc61615b20 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
_dispatcher = {}
def _copy_list(_l):
ret = _l.copy()
for idx, item in enumerate(ret):
cp = _dispatcher.get(type(item))
if cp is not None:
ret[idx] = cp(item)
return ret
_dispatcher[list] = _copy_list
def _copy_dict(d):
ret = d.copy()
for key, value in ret.items():
cp = _dispatcher.get(type(value))
if cp is not None:
ret[key] = cp(value)
return ret
_dispatcher[dict] = _copy_dict
if __name__ == '__main__':
l = [1, 2, 3]
_copy_list(l)
|