Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.35 KB | None | 0 0
  1. import collections
  2. import random
  3. import time
  4. # choper le premier entier unique de la liste
  5. # a = [1, 2, 5, 9, 6, 7, 1, 5, 2, 8, 9, 6]
  6. i1 = random.randint(0, 9999)
  7. i2 = random.randint(0, 9999)
  8. print(i1, i2)
  9. a = [i for i in range(10000)]
  10. b = [i for i in range(10000)]
  11. b.remove(i1)
  12. b.remove(i2)
  13. a = a + b
  14.  
  15.  
  16. def timeit(func):
  17.     def wrapper(*args, **kwargs):
  18.         print('calling {}'.format(func.__name__))
  19.         start = time.time()
  20.         index = func(*args, **kwargs)
  21.         print('{} took {} seconds'.format(func.__name__, time.time() - start))
  22.         return index
  23.     return wrapper
  24.  
  25.  
  26. @timeit
  27. def get_index_set(array):
  28.     for entier in set(array):
  29.         if array.count(entier) == 1:
  30.             return array.index(entier)
  31.  
  32.  
  33. # ma méthode
  34. @timeit
  35. def get_index(array):
  36.     for index, entier in enumerate(array):
  37.         if array.count(entier) == 1:
  38.             return index
  39.  
  40.  
  41. # la méthode du mec
  42. # plus performant - de boucles
  43. @timeit
  44. def get_u_index(array):
  45.     list_u = collections.OrderedDict()
  46.     for index, entier in enumerate(array):
  47.         list_u.setdefault(entier, {'index': index, 'count': 0})
  48.         list_u[entier]['count'] += 1
  49.  
  50.     for (entier, ele) in list_u.items():
  51.         if ele['count'] == 1:
  52.             return ele['index']
  53.  
  54. print(get_u_index(a))
  55. print(get_index(a))
  56. print(get_index_set(a))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement