0

How to use random.randint() to select random names given in a list in python.

I want to print 5 names from that list. Actually i know how to use random.randint() for numbers. but i don't know how to select random names from a given list.

we are not allowed to use random.choice.

help me please

ndpu
  • 22,225
  • 6
  • 54
  • 69
user3209210
  • 31
  • 3
  • 4

5 Answers5

2

This will not guarantee no repeats, since random.choice is better for that.

import random
names = ["A", "B", "C", "D", "E", "F", "G", "H", "I"]
print([names[random.randint(0, len(names)-1)] for i in range(5)])
arocks
  • 2,862
  • 1
  • 12
  • 20
2
>>> population = range(10)

Are you allowed to use random.sample?

>>> names = random.sample(population, 5)
>>> names
[4, 0, 1, 2, 8]

Using solely random.randint would be more difficult, but if you must do so, I'd do something like this:

>>> names = [population[random.randint(0, len(population)-1)] for x in range(5)]
>>> names
[2, 8, 6, 6, 9]

But obviously this is with replacement. If you don't want replacement, you'd need some more complicated code. For example, a function:

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

So:

>>> names = custom_sample(population, 5)
>>> names
[7, 4, 8, 3, 0]
jayelm
  • 7,236
  • 5
  • 43
  • 61
1

The simplest way to select a random item from the list is to use using random.randint() as below,

Say for instance your list is:

list_1 = ['cat', 'amusement park', 'bird watching']

and you want to print an item from the list randomly then,

import random
print(list_1[random.randint(0,2)])
Jithin Scaria
  • 1,271
  • 1
  • 15
  • 26
Mandy
  • 11
  • 2
0

If you want to get a random element from a list using random.randint(), below is an option

list_name = [...]                                 # a sample list
size = len(list_name)                             # finding the length of the list
random_elemet = list_name[random.randint(0,size)] # get a random element
Jithin Scaria
  • 1,271
  • 1
  • 15
  • 26
0

Yes, for repeat sample from one population, @MaxLascombe's answer is OK. If you do not want tiles in samples, you should kick the chosen one out. Then use @MaxLascombe's answer on the rest of the list.

Kattern
  • 2,949
  • 5
  • 20
  • 28