2017-05-03 35 views

回答

6

你可以只使用element in list語法。此外,如果您只想打印truefalse,則無需使用if else聲明。你可以只直接打印布爾:

print(5 in [a, b, c, d]) 
# False 

如果你想有一個小寫的字符串:

print(str(5 in [a, b, c, d]).lower()) 
# "false" 

最後,如果你經常需要這個測試,你可以收拾值成set

a = 1 
b = 2 
c = 3 
d = 4 
all_values = set([a, b, c, d]) 

你會花一些時間來創建組,但查詢5 in all_values應該變得更快,尤其是如果有很多變數。

+1

對於過早的優化,使用'set',而不是'list' –

+0

@Chris_Rands:萬一它不是100%的嘲諷,我加了註釋關於套。 –

+0

在'list'上使用'set'有什麼好處,它是否更快? – Lewis909

4

這將是我的眼睛最好。

if any(x==5 for x in (a, b, c, d)): 
    ... 

,如果你想要做多and檢查,你可以使用all()具有相同的語法你可以看看documentation

同樣。

最後,爲您的特殊情況下,既然你想要做的唯一事情是一個成員資格測試我會張貼@Eric答案去。我的方法更通用。

+0

我喜歡這一個可讀性超過'5 [...'解決方案。它也很好地概括了使用'x'的任何邏輯值表達式,而不僅僅是平等。 – nigel222

+0

我很欣賞這個答案,因爲有人正在學習Python,因爲它有助於查看問題的不同解決方案。 – Lewis909

1

你可以使用if 5 in [a, b, c,d]:

在情況下,如果你想檢查的變量平等與不同數量any()是一個安全的賭注

if any([a == 1, b == 2, c == 3, d == 4]):

1

也許只要使用in

if 5 in (a,b,c,d): 
    print('true') 
else: 
    print('false') 

或只是

print(5 in (a,b,c,d)) 
+0

我正在使用'print'作爲if語句的一個例子,我已經編輯了這個問題來反映這一點。 – Lewis909

相關問題