Skip to content

Instantly share code, notes, and snippets.

@maxim-saplin
Created December 10, 2023 21:01
Show Gist options
  • Save maxim-saplin/c155fed6457381df50b860e8ad37c1bf to your computer and use it in GitHub Desktop.
Save maxim-saplin/c155fed6457381df50b860e8ad37c1bf to your computer and use it in GitHub Desktop.
Python, equality vs list membership
def is_special_number(number):
if number == 7:
return True
elif number == 18:
return True
else:
return False
def is_special_number_2 (number):
return number in [7, 18]
import time
def measure_execution_time(func, iterations, *args):
start_time = time.time()
for _ in range(iterations):
func(*args)
end_time = time.time()
print(f"Execution time for {func.__name__}: {end_time - start_time} seconds")
for _ in range(3):
measure_execution_time(is_special_number, 10000000, 10)
measure_execution_time(is_special_number_2, 10000000, 10)
# M1 Pro, 3.11.6
# Execution time for is_special_number: 0.4272191524505615 seconds
# Execution time for is_special_number_2: 0.4768540859222412 seconds
# Execution time for is_special_number: 0.42814183235168457 seconds
# Execution time for is_special_number_2: 0.4768698215484619 seconds
# Execution time for is_special_number: 0.4265279769897461 seconds
# Execution time for is_special_number_2: 0.47823524475097656 seconds
# Avg 0.43 vs 0.48
# M1 Pro, 3.12.0
# Execution time for is_special_number: 0.40006017684936523 seconds
# Execution time for is_special_number_2: 0.4342169761657715 seconds
# Execution time for is_special_number: 0.3950788974761963 seconds
# Execution time for is_special_number_2: 0.4562370777130127 seconds
# Execution time for is_special_number: 0.3969869613647461 seconds
# Execution time for is_special_number_2: 0.4354100227355957 seconds
# Avg 0.40 vs 0.44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment