2017-02-01 3 views
1

リスト内の不要な変数を取り除こうとしています。私は2つの条件が必要です:1つは、配列内の値が変数Aよりも小さいことを確認する場合、もう1つは別の変数Bと等しくないことを確認する場合です。「if」または「statements」に従わない要素をリストから削除する

このコードは機能しません:

original_Ar = [0,1,2,3,4,5,6,7,8,9,10,11,12] 
new_Ar = [s for s in original_Ar if (s != 2) or (s < 10)] 

print (new_Ar) 

ながら、私は2つのステートメント(代わりのor書)に分割した場合 - 彼らは仕事の操作を行います。私はその内の1つの行を行うことができますどのように

original_Ar = [0,1,2,3,4,5,6,7,8,9,10,11,12] 
print ([s for s in original_Ar if (s != 2)]) 
print ([s for s in original_Ar if (s < 10)]) 

任意のアイデアを?

+3

'または'の代わりに 'と'を使ってみてください – depperm

+3

なぜあなたは質問を書いたときに "と"を使ったので、あなたは 'または'を使いましたか? – doctorlove

答えて

6

ブール論理が混ざっています。それが10よりも小さくなっているので、あなたが、s = 2を含めるだろう、とあなたはs = 11s = 12を含めると思い、そうでない場合

new_Ar = [s for s in original_Ar if s != 2 and s < 10] 
#   *both* conditions must be true ^^^ 

:あなたは2 に等しくないすべての値が10未満である含めたいです両方が2と等しくないので!

関連する問題