Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from time import time
- def clock(func):
- def wrapper(*args, **kwargs):
- start = time()
- result = func(*args, **kwargs)
- elapsed = (time() - start) * 1000
- print(f'{func.__name__:8} {elapsed:3.0f}ms')
- return result
- return wrapper
- @clock
- def arthur(nums):
- int(''.join(map(str, nums)))
- @clock
- def nick(nums):
- int(''.join(str(i) for i in nums))
- @clock
- def ryan(nums):
- sum(n * 10**i for i, n in enumerate(reversed(nums)))
- if __name__ == '__main__':
- list_9k = [9] * 9000
- list_180k = [9] * 180000
- header = '9k size'
- print(f'{header:>14}\n--------------')
- arthur(list_9k)
- nick(list_9k)
- ryan(list_9k)
- header = '180k size'
- print(f'\n{header:>14}\n--------------')
- arthur(list_180k)
- nick(list_180k)
- print('ryan n/a') # ryan(list_180k) would take too long to run
- # OUTPUT
- #
- # 9k size
- # --------------
- # arthur 3ms
- # nick 4ms
- # ryan 492ms
- #
- # 180k size
- # --------------
- # arthur 198ms
- # nick 213ms
- # ryan n/a
- #
- # Ranked by speed:
- # 1) map
- # 2) for
- # 3) for with enumerate
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement