我正在尝试将名为
facility
的字符串与多个可能的字符串进行比较,以测试它是否有效。有效的字符串是:
auth, authpriv, daemon, cron, ftp, lpr, kern, mail, news, syslog, user, uucp, local0, ... , local7
除了:
之外,还有其他有效的方法吗?if facility == "auth" or facility == "authpriv" ...
如果,OTOH,你的字符串列表确实长得可怕,请使用一组:
accepted_strings = {'auth', 'authpriv', 'daemon'}
if facility in accepted_strings:
do_stuff()
测试集合中的包含性平均为 O(1)。
除非你的字符串列表变得非常长,否则这样的东西可能是最好的:
accepted_strings = ['auth', 'authpriv', 'daemon'] # etc etc
if facility in accepted_strings:
do_stuff()
要有效检查字符串是否与多个字符串之一匹配,请使用以下命令:
allowed = set(('a', 'b', 'c'))
if foo in allowed:
bar()
set()
是散列的、无序的项目集合,经过优化以确定给定项目是否在其中。