减少所需if语句的数量

2024-04-18 12:22:58 发布

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

我使用Python编写了以下代码:

a = ["Porsche", "Google", "Facebook", "Mercedes", "Audi", "Twitter"]

if "Porsche" in a:
    pass
if "Google" in a:
    pass
if "Facebook" in a:
    pass 
if "Mercedes" in a:
    pass
if "Audi" in a:
    pass
if "Twitter" in a:
    pass

但是,使用这段代码,我不知道如何减少所需的if语句的数量。有没有更好的方法使用Python来做到这一点?你知道吗

非常感谢!你知道吗


Tags: 方法代码in数量facebookifgoogletwitter
3条回答

假设pass语句都表示相同的代码,可以使用or组合这些条件:

if ("Porsche" in a) or ("Google" in a) or ("Facebook" in a) or ("Mercedes" in a) or ("Audi" in a) or ("Twitter" in a):
    pass

(括号都是可选的,但它们使语句更易于阅读。)

使用generator expression进一步简化:

if any((x in a) for x in ("Porsche", "Google", "Facebook", "Mercedes", "Audi", "Twitter")):
    pass

(和以前一样,(x in a)周围的括号是可选的,但有助于可读性。其他括号是必需的。)

我不确定你的问题是否正确。你想要更少的if语句?如果这是你想要的:这取决于你在If语句中做了什么。如果你做类似的事情,那没问题。然后你可以用这样的方法:

if 'Porsche' in a or 'Google' in a:
    pass

如果你在做不同的事情,你需要所有的If语句。你知道吗

如果需要较少的If语句,可以使用for循环遍历列表。你知道吗

示例:

a = ["Porsche", "Google", "Facebook", "Mercedes", "Audi", "Twitter"]

# you can change the values to whatever you want
b = ["Porsche", "Google", "Facebook", "Mercedes", "Audi", "Twitter"]


for i in range(len(a)):
    if b[i] in a:
        pass

另一个好处是它不是硬编码的,所以您可以将它更改为任何您想要的内容,并以编程方式添加更多内容。你知道吗

相关问题 更多 >