Does Python sort arrays with multiple keys with or without executing the second key? (It does execute the second key) If so is there a way to stop it from evaluating the second key when it is unnecessary? Is there a module that would be able to do this easily without having to add extra code?
import random
import itertools
alist=[random.randint(0,10000000) for i in range(10000)]
def cheap(x):
return x0000
def expensive(x):
def primes():
D = {}
yield 2
for q in itertools.count(3, 2):
p = D.pop(q, None)
if p is None:
yield q
D[q*q] = q
else:
x = p q
while x in D or x % 2 == 0:
x = p
D[x] = p
def nth_prime(n):
if n < 1:
raise ValueError("n must be >= 1 for nth_prime")
for i, p in enumerate(primes(), 1):
if i == n:
return p
return nth_prime(x