import timeit
import random
def generate_data(count):
for _ in range(count):
point = random.randint(0, 9)
list_range = random.randint(10, 100)
yield [random.randint(0, 9) for _ in range(list_range)] if point else [point] * list_range
data = [*generate_data(10000)]
def compare_slices(data):
return data[1:] == data[:-1]
def compare_count(data):
return data.count(data[0]) == len(data)
print(f'Slices: {timeit.timeit(lambda: compare_slices(data), number=10000)}')
print(f'Count: {timeit.timeit(lambda: compare_count(data), number=10000)}')
aW1wb3J0IHRpbWVpdAppbXBvcnQgcmFuZG9tCgpkZWYgZ2VuZXJhdGVfZGF0YShjb3VudCk6CiAgICBmb3IgXyBpbiByYW5nZShjb3VudCk6CiAgICAgICAgcG9pbnQgPSByYW5kb20ucmFuZGludCgwLCA5KQogICAgICAgIGxpc3RfcmFuZ2UgPSByYW5kb20ucmFuZGludCgxMCwgMTAwKQogICAgICAgIHlpZWxkIFtyYW5kb20ucmFuZGludCgwLCA5KSBmb3IgXyBpbiByYW5nZShsaXN0X3JhbmdlKV0gaWYgcG9pbnQgZWxzZSBbcG9pbnRdICogbGlzdF9yYW5nZQoKZGF0YSA9IFsqZ2VuZXJhdGVfZGF0YSgxMDAwMCldCgpkZWYgY29tcGFyZV9zbGljZXMoZGF0YSk6CiAgICByZXR1cm4gZGF0YVsxOl0gPT0gZGF0YVs6LTFdCgpkZWYgY29tcGFyZV9jb3VudChkYXRhKToKICAgIHJldHVybiBkYXRhLmNvdW50KGRhdGFbMF0pID09IGxlbihkYXRhKQoKcHJpbnQoZidTbGljZXM6IHt0aW1laXQudGltZWl0KGxhbWJkYTogY29tcGFyZV9zbGljZXMoZGF0YSksIG51bWJlcj0xMDAwMCl9JykKcHJpbnQoZidDb3VudDoge3RpbWVpdC50aW1laXQobGFtYmRhOiBjb21wYXJlX2NvdW50KGRhdGEpLCBudW1iZXI9MTAwMDApfScpCg==