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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| from copy import deepcopy from time import time
num_times = 100000 L = [None, 'blah', 1, 543.4532, ['foo'], ('bar',), {'blah': 'blah'}, old_class(), new_class()]
t = time() for i in range(num_times): Copy(L) print('Custom Copy:', time() - t)
t = time() for i in range(num_times): Copy(L, use_deepcopy=False) print('Custom Copy Only Copying Lists/Tuples/Dicts (no classes):', time() - t)
t = time() for i in range(num_times): copy.copy(L) print('copy.copy:', time() - t)
t = time() for i in range(num_times): copy.deepcopy(L) print('copy.deepcopy:', time() - t)
t = time() for i in range(num_times): L[:] print('list slicing [:]:', time() - t)
t = time() for i in range(num_times): list(L) print('list(L):', time() - t)
t = time() for i in range(num_times): [i for i in L] print('list expression(L):', time() - t)
t = time() for i in range(num_times): a = [] a.extend(L) print('list extend:', time() - t)
t = time() for i in range(num_times): a = [] for y in L: a.append(y) print('list append:', time() - t)
t = time() for i in range(num_times): a = [] a.extend(i for i in L) print('generator expression extend:', time() - t)
|