2017-05-08 86 views
0

我有这样的:使用开关的情况下在蟒蛇有特殊条件

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) 

一切都OK了,但我不知道,如何添加此在词典:

elif you == 3: 
    pass 

是怎么想的,有什么更好的方式来增加pass声明字典?

+5

既然你有'如果你在设置:',你可以通过简单地在'dict'中简单地省略'3'来实现'pass'。 –

回答

2

首先,当您使用字典时,不需要检查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,而不是dir如果没有密钥,则可以使用dict.get()返回None。然后你可以检查结果是否为None,然后只是做pass