使用IF语句或与IF语句进行比较

2024-05-18 12:24:32 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中使用IF语句时,必须执行以下操作才能使“cascade”正常工作。

if job == "mechanic" or job == "tech":
        print "awesome"
elif job == "tool" or job == "rock":
        print "dolt"

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

if job == "mechanic" or "tech":
    print "awesome"
elif job == "tool" or "rock":
    print "dolt"

Tags: orifjob语句tooltechcascadeawesome
3条回答
if job in ("mechanic", "tech"):
    print "awesome"
elif job in ("tool", "rock"):
    print "dolt"

括号中的值是一个元组。in运算符检查左侧项是否出现在右句柄元组中的某个位置。

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

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

如果在程序运行期间不需要更改令人敬畏的作业列表,则最好使用frozenset而不是set

if job in ("mechanic", "tech"):
    print "awesome"
elif job in ("tool", "rock"):
    print "dolt"

可用于:

if job  in ["mechanic", "tech"]:
    print "awesome"

当检查非常大的数字时,可能还值得存储一组要检查的项目,因为这样会更快。例如

AwesomeJobs = set(["mechanic", "tech", ... lots of others ])
...

def func():
    if job in AwesomeJobs:
        print "awesome"

相关问题 更多 >

    热门问题