fork download
  1. import timeit
  2. import random
  3.  
  4. def generate_data(count):
  5. for _ in range(count):
  6. point = random.randint(0, 9)
  7. list_range = random.randint(10, 100)
  8. yield [random.randint(0, 9) for _ in range(list_range)] if point else [point] * list_range
  9.  
  10. data = [*generate_data(10000)]
  11.  
  12. def compare_slices(data):
  13. return data[1:] == data[:-1]
  14.  
  15. def compare_count(data):
  16. return data.count(data[0]) == len(data)
  17.  
  18. print(f'Slices: {timeit.timeit(lambda: compare_slices(data), number=10000)}')
  19. print(f'Count: {timeit.timeit(lambda: compare_count(data), number=10000)}')
  20.  
Success #stdin #stdout 4.89s 17656KB
stdin
Standard input is empty
stdout
Slices: 1.9070264883339405
Count: 2.0428727827966213