2017-04-05 92 views
1

我有一個gui,我運行了幾個複選框,可以選擇這些複選框來確定要運行的測試類型。我的代碼目前非常龐大,我必須列出每個可能的複選框組合作爲單獨的if語句。我有一個數組,用於存儲我的複選框值。對於每個可能的複選框組合,我運行一個不同的腳本,但我只有幾個腳本。簡化數組如果Python中的'if array in bigArray'語句中的語句Python27

array = [var1, var2, var3] 
if array == [1, 1, 0]: 
    import Test1 
elif array == [0, 1, 0]: 
    import Test1 
elif array == [1, 0, 1]: 
    import Test2 
elif array == [1, 0, 0]: 
    import Test2 

我希望有我的代碼看起來更像:

array = [var1, var2, var3] 
if array in {[1, 1, 0], [0, 1, 0]}: 
    import Test1 
elif array in {[1, 0, 1], [1, 0, 0]}: 
    import Test2 

有沒有辦法來爲數組做到這一點?

回答

0

您可以檢查數組是否在數組列表中。

array = [var1, var2, var3] 
if array in [[1, 1, 0], [0, 1, 0]]: 
    import Test1 
elif array in [[1, 0, 1], [1, 0, 0]]: 
    import Test2 

你不能這樣做{[1, 1, 0], [0, 1, 0]}的原因是,這個嘗試創建一個dict和Python不允許listskeys。然而,你可以做類似的事情:

array = [var1, var2, var3] 
if array in {0 : [1, 1, 0], 1 : [0, 1, 0]}.values(): 
    import Test1 
elif array in {0: [1, 0, 1], 1 : [1, 0, 0]].values(): 
    import Test2 

但是,然後你只是從我的第一個例子製作數組的數組。

+1

這是如此簡單!非常感謝。 –