Search code examples
pythonstringstring-comparison

Comparing a string to multiple items in Python


I'm trying to compare a string called facility to multiple possible strings to test if it is valid. The valid strings are:

auth, authpriv, daemon, cron, ftp, lpr, kern, mail, news, syslog, user, uucp, local0, ... , local7

Is there an efficient way of doing this other than:

if facility == "auth" or facility == "authpriv" ...

Solution

  • If, OTOH, your list of strings is indeed hideously long, use a set:

    accepted_strings = {'auth', 'authpriv', 'daemon'}
    
    if facility in accepted_strings:
        do_stuff()
    

    Testing for containment in a set is O(1) on average.