random modülünün sample metodu
random modülünün sample metodu,
bir diziden rastgele öğe seçimi yapar. Metodun
ilk parametresinde diziyi, ikinci parametresinde
ise rastgele seçmek istediğimiz öğe sayısını
belirtiriz.
Üçüncü isteğe bağlı isimlendirilmiş parametre
k ile tekrar için öğe listesi
belirleyebiliriz. Bu, belirli öğelerin seçilme
olasılığını artırmanıza olanak tanır. Üçüncü
parametrenin sadece Python 3.9 ve sonraki
sürümlerinde eklendiğine dikkat edin.
Sözdizimi
import random
random.sample(dizi, öğe_sayısı, [k=tekrar])
Örnek
Bir listeden rastgele üç öğe seçelim:
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
Kodun çalıştırılmasının sonucu:
[2, 1, 5]
Örnek
Ayrıca bir demetten rastgele öğe seçmeyi deneyelim:
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
Kodun çalıştırılmasının sonucu:
[3, 2]
Örnek
range fonksiyonunun oluşturduğu
diziden de öğe seçilebilir:
print(random.sample(range(0, 10), 3))
Kodun çalıştırılmasının sonucu:
[0, 8, 9]
Örnek
Şimdi bir liste alalım ve counts
parametresini kullanarak listedeki her öğe
için tekrarlar atayalım. Bizim durumumuzda,
ilk öğe iki kez, ikinci öğe üç kez, üçüncü
öğe ise dört kez tekrar etsin. Ayrıca öğe
sayısını belirtmek için k parametre
adını belirtmek gerekir:
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
Bu kod şununla eşdeğerdir:
lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # fiilen böyle bir liste
print(random.sample(lst, 3))
Örnek
Şimdi bir kümeden öğe seçmeyi deneyelim:
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
Bize aşağıdaki hata dönecektir:
[5, 2]
DeprecationWarning: Sampling from a set deprecated
since Python 3.9 and will be removed in a subsequent version.
print(random.sample(st, 2))
Bunun nedeni, Python 3.9 sürümünden
itibaren bir kümeden örnekleme yapma
imkanının sağlanmamış olmasıdır.