Search code examples
pythonlistrandom

How can I randomly select (choose) an item from a list (get a random element)?


How do I retrieve an item at random from the following list?

foo = ['a', 'b', 'c', 'd', 'e']

Solution

  • Use random.choice():

    import random
    
    foo = ['a', 'b', 'c', 'd', 'e']
    print(random.choice(foo))
    

    For cryptographically secure random choices (e.g., for generating a passphrase from a wordlist), use secrets.choice():

    import secrets
    
    foo = ['battery', 'correct', 'horse', 'staple']
    print(secrets.choice(foo))
    

    secrets is new in Python 3.6. On older versions of Python you can use the random.SystemRandom class:

    import random
    
    secure_random = random.SystemRandom()
    print(secure_random.choice(foo))