Advertisement
Guest User

Untitled

a guest
Dec 17th, 2022
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.48 KB | None | 0 0
  1. arr = [1, 1, [1], [[1, 1, [1, 1]]], [1, [1, 1], 1]]
  2.  
  3. def f(x):
  4.     if isinstance(x,(float,int)):
  5.         return x
  6.     else:
  7.         return sum(f(z) for z in x)
  8.  
  9. def g(x):
  10.     brr=[x]
  11.     s=0
  12.     while brr:
  13.         if isinstance(u:=brr.pop(),(float,int)):
  14.             s+=u
  15.         else:
  16.             brr.extend(u)
  17.     return s
  18.  
  19. print(f(arr))
  20. print(g(arr))
  21.  
  22. from timeit import *
  23. for u in [f,g,g,f,f,g,g,f]:
  24.     print(f'{u.__name__}: {timeit(lambda:u(arr),number=100000)}')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement