Metoden sample i modulen random
Metoden sample i modulen random
returnerar ett slumpmässigt urval av element från
en sekvens. I den första parametern för
metoden anger vi sekvensen, i
den andra parametern - antalet element,
som vi vill välja slumpmässigt.
I den tredje valfria namngivna
parametern k kan vi ange en lista
med element för upprepning. Detta möjliggör
att öka sannolikheten för urval av givna
element. Observera att
den tredje parametern för metoden endast har lagts till
från och med version Python 3.9.
Syntax
import random
random.sample(sekvens, antal element, [k=upprepning])
Exempel
Låt oss få tre slumpmässiga element från en lista:
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
Resultat av kodkörning:
[2, 1, 5]
Exempel
Låt oss också prova att ta ett urval av slumpmässiga element från en tupel:
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
Resultat av kodkörning:
[3, 2]
Exempel
Det är också möjligt att välja element från
en sekvens som genereras av
funktionen range:
print(random.sample(range(0, 10), 3))
Resultat av kodkörning:
[0, 8, 9]
Exempel
Låt oss nu ta en lista och med hjälp av
parametern counts tilldela upprepningar
för varje element i listan. I vårt
fall, låt det första elementet upprepas
två gånger, det andra - tre, och det tredje - fyra
gånger. Det är också nödvändigt att ange parameterns namn
k för utdata av antalet element:
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
Denna kod är ekvivalent med följande:
lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # faktiskt en sådan lista
print(random.sample(lst, 3))
Exempel
Låt oss nu prova att ta element från en mängd:
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
Följande fel returneras:
[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))
Detta beror på att från version Python
3.9 finns det inte möjlighet att
ta urval från en mängd.