2017-05-08 84 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