a
ve b
dahil olmak üzere rastgele bir tam sayı seçmek istiyorum.Seçimin performansı vs randint
Bunu yapmanın 3 yolunu biliyorum. Ancak bunların performansı çok sezgilere görünüyor:
benim makinedeimport timeit
t1 = timeit.timeit("n=random.randint(0, 2)", setup="import random", number=100000)
t2 = timeit.timeit("n=random.choice([0, 1, 2])", setup="import random", number=100000)
t3 = timeit.timeit("n=random.choice(ar)", setup="import random; ar = [0, 1, 2]", number=100000)
[print(t) for t in [t1, t2, t3]]
, bu verir:
0.29744589625620965
0.19716156798482648
0.17500512311108346
bir online interpreter kullanarak, bu verir:
0.23830216699570883
0.16536146598809864
0.15081614299560897
Not nasıl en direkt Yaptığım şeyi yapmak için özel işlev kullanan sürüm (# 1), % 50 daha kötü olduğunu önceden tanımlayan en tuhaf sürümdür (# 3). bir dizi ve daha sonra rasgele seçer.
Neler oluyor?
t1 karşılaştırmayı deneyin, t2 ve t3 seçeneği ile (aralık (3)) 've cevap açık olmalıdır. – Shashank
't2' ve' t3' aynıdır, ancak 't2'de listenin oluşturulmasını ölçüyorsunuz ve' t3'de yapmazsınız. – Jens
@Jens Bir seferde birkaç sayı üretecekseniz, t2' önemlidir, "t3" çok fazla sayıya ihtiyacınız olacağını bildiğiniz durumlarda biraz zaman kazandırır. – Superbest