使用OR与IF语句进行比较

cry*_*ice 13 python comparison boolean

在Python中使用IF语句时,必须执行以下操作才能使"级联"正常工作.

if job == "mechanic" or job == "tech":
        print "awesome"
elif job == "tool" or job == "rock":
        print "dolt"
Run Code Online (Sandbox Code Playgroud)

有没有办法让Python在检查"等于"时接受多个值?例如,

if job == "mechanic" or "tech":
    print "awesome"
elif job == "tool" or "rock":
    print "dolt"
Run Code Online (Sandbox Code Playgroud)

Gre*_*ill 36

if job in ("mechanic", "tech"):
    print "awesome"
elif job in ("tool", "rock"):
    print "dolt"
Run Code Online (Sandbox Code Playgroud)

括号中的值是元组.该in运营商检查是否右手柄元组内的某处发生左侧项目.

请注意,当Python使用in运算符搜索元组或列表时,它会执行线性搜索.如果右侧有大量项目,这可能是性能瓶颈.更大规模的方法是使用frozenset:

AwesomeJobs = frozenset(["mechanic", "tech", ... lots of others ])
def func():
    if job in AwesomeJobs:
        print "awesome"
Run Code Online (Sandbox Code Playgroud)

使用frozensetset,如果真棒职位列表不需要你的程序的操作过程中被改变是首选.