なぜ "ARR中(編曲で '')"!= " 'A' でARR ARRで"?

マキシムSheludyakov:

なぜ('a' in arr) in arr!= 'a' in arr in arr

arr = [1, True, 'a', 2]
print(('a' in arr) in arr)  # -> True
print('a' in arr in arr)  # -> False
chepner:

Python言語リファレンスの6.10節は、比較演算子と比較チェーンを説明します。in比較演算子とみなされ、そうと同じように動作され<、明示的なグループ化括弧なしなど、x OP1 y OP2 zと等価であるx OP1 y and y OP2 z任意の2つの比較演算子。

この意味は

'a' in arr in arr

括弧なし、と等価です

'a' in arr and arr in arr

arr 式があるので、自身の要素ではありません False.

そう、無効チェーンをカッコ

('a' in arr) in arr

他のネストされた式のように評価されます。'a' in arr第1の値に評価されTrue、その後True in arrも生成するように評価されますTrue

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=8203&siteId=1
Arr