【问题标题】:Is there a way to do a condensed conditional statement in python 3.6?有没有办法在 python 3.6 中做一个精简的条件语句?
【发布时间】:2020-07-16 21:08:27
【问题描述】:

在文档中找不到任何关于此的内容。

给出以下条件示例:

if val == 2 or val == 10 or val == 11: ....

有没有办法在不重复 val == 的情况下浓缩这个语句?

有没有类似的东西:

if val == 2 or 10 or 11: ....

这是否与原始的时间复杂度相同? :if val in [2,10,11]

【问题讨论】:

    标签: python-3.x conditional-statements


    【解决方案1】:

    in 运算符 (if val in [2, 10, 11]) 的变体与您将得到的一样简洁。它与一系列== 运算符具有相同的时间复杂度。

    【讨论】:

    • 由于会员检查速度更快,集合不是更好吗?假设检查的数量足够大。
    • 请注意,如果您真的非常关心性能,您可以用元组替换列表。事实上,编译器会自动为小型固定列表执行此操作,例如您的示例中的那个。
    • @xdurch0 撤回我之前的评论 - 根据this related question,似乎是的,集合是 Python 3.2+ 的最佳选择。
    • 从那个链接,听起来frozenset 更好!今天学到了一些东西。
    猜你喜欢
    • 2015-01-13
    • 1970-01-01
    • 2011-03-12
    • 2020-07-07
    • 1970-01-01
    • 2014-05-09
    • 2022-12-07
    • 2019-06-21
    • 1970-01-01
    相关资源
    最近更新 更多