2015-06-10 90 views
0

我想在for循環中創建一個IF語句,如果變量等於列表中的任何值,我希望它被觸發。如果變量等於列表中的任何值

的樣本數據:

list = [variable1, variable2, variable3] 

現在我有此示例代碼:

for k, v in result_dict.items(): 
    if k == 'varible1' or k == 'variable2' or k == 'variable2': 

但問題是,名單將越來越大,我並沒有把創建多個OR語句爲每個變量。 我該怎麼辦?

回答

5

這是in運營商的用途。請執行以下操作:

list = [variable1, variable2, variable3] 
for k, v in result_dict.items(): 
    if k in list: 
0

您可能需要另一個FOR循環。

for k, v in result_dict.items(): 
    for i in list: 
     if i==k: 
+0

謝謝。抱歉,新的StackOverflow – ofarooq

1

另一種方式來做到這一點是與集:

>>> l = ['a', 'b', 'c'] 
>>> d = {'a': 1, 'b': 2, 'c': 'three', 'd': 4, 'e': 5, 'f': 6} 
>>> keys = set(l).intersection(d.keys()) 
>>> keys 
set(['a', 'c', 'b']) 

然後你就可以在這些鍵遍歷:

for k in set(l).intersection(d.keys()): 
    do_something(d[k]) 

這應該不是名單上反覆呼籲in更有效。撥打電話set()最短的名單或字典。

相關問題