>>> population = range(10)
Вы разрешили использовать random.sample
?
>>> names = random.sample(population, 5)
>>> names
[4, 0, 1, 2, 8]
Использование исключительно random.randint
будет сложнее, но если вы должны сделать это, я бы что-то вроде этого:
>>> names = [population[random.randint(0, len(population)-1)] for x in range(5)]
>>> names
[2, 8, 6, 6, 9]
Но очевидно, что это с заменой. Если вам не нужна замена, вам понадобится еще более сложный код. Например, функция:
def custom_sample(population, count):
names = []
already_used = []
for x in range(count):
temp_index = random.randint(0, len(population)-1)
while temp_index in already_used:
temp_index = random.randint(0, len(population)-1)
names.append(population[temp_index])
already_used.append(temp_index)
return names
Итак:
>>> names = custom_sample(population, 5)
>>> names
[7, 4, 8, 3, 0]