Вы можете создать генератор, который сгенерирует n
списка значений из composition()
и остановится, когда n
из них будет <=
10. Этот список будет включать все числа, поэтому у вас есть все промежуточные значения, и длина этого списка будет, сколько "долго" потребовалось для его создания. Например (с ложной случайной функцией composition()
:
from random import randint
def composition():
return randint(0, 20)
def getN(n):
while n > 0:
c = composition()
if c < 10:
n -= 1
yield c
values = list(getN(10)) # get 10 values less than 10
# [2, 0, 11, 15, 12, 8, 16, 16, 2, 8, 10, 3, 14, 2, 9, 18, 6, 11, 1]
time = len(values)
# 19