【问题标题】:Use switch case in python with special condition在具有特殊条件的python中使用switch case
【发布时间】:2017-10-06 23:55:54
【问题描述】:

我有这个:

if you == 1:
    one.put(argument)
elif you == 3:
    pass
elif you == 4:
    two.put(argument)
elif you == 5:
    three.put(argument)
...
...
...
a lot of elif

我正在尝试使用字典:

settings = {
    1: one
    4: two,
    5: three
    ...
    ...
    ...
    other elemets of dict
    }

    if you in settings:
        settings[you].put(argument)

一切正常,但我不知道如何在字典中添加这个:

elif you == 3:
    pass

您认为,将pass 语句添加到字典的更好方法是什么?

【问题讨论】:

  • 既然你有if you in setting:,你可以通过简单地省略dict中的3来实现pass

标签: python linux loops dictionary if-statement


【解决方案1】:

首先,当您使用字典时,您不需要检查 setting 中的项目是否存在。在这种情况下使用字典的全部意义在于避免检查。

其次,如果只有 3 个,您可以简单地使用 if 条件:

if you == 3:
    pass
else:    
    settings[you].put(argument)

如果有更多这样的项目,您可以使用try-except(字典中没有它们):

try:
    settings[you].put(argument)
except KeyError:
    pass

请注意,由于通常请求宽恕比请求许可更容易,在这种情况下,try-except 方法更简洁和 Pythonic,但您也可以使用 dict.get() 代替直接索引在丢失密钥的情况下返回None。然后您可以检查结果是否为None,然后只需执行pass

【讨论】:

    猜你喜欢
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多