2016-07-26 7 views
2

私はPythonについてもう少し詳しく学び始めています。私は頻繁にしたいが、プログラムする方法がわからない一つの機能は/ Pythonで行うには、それはそうと同じように動作R.でx %in% y演算子です:xの最初の要素は、(1)そのyで一致していない PythonのRの%演算子と同等です

1:3 %in% 2:4 

##[1] FALSE TRUE TRUE 

FALSE x(2 & 3)の最後の2つの要素は、 yに一致するので、 TRUEとなります。

それはRのいずれかで働いていないだろうと私はこれが動作するように期待することを

ないが、Pythonで==を使用して私が取得:

[1, 2, 3] == [2, 3, 4] 
# False 

私はPythonでオペレータの同じ種類を得ることができる方法は?そのような演算子がすでに他の場所に存在する場合、私はPythonをベースにしていません。

+0

これは '[範囲(1,4)]のxの範囲(2,5)の' xですか? – khelwood

+4

http://stackoverflow.com/questions/25206376/python-equivalent-of-the-r-operator-in – Sumedh

+1

これは重複していますか?もう1つの質問は、パンダ固有の解決策を求めており、答えは一般的な概念である「イン」とは関係ありません。 –

答えて

1

%in%は、単にPythonでinです。しかし、numpy以外のPythonのほとんどのものと同様に、ベクター化されていません。

In [1]: 1 in [1, 2, 3] 
Out[1]: True 

In [2]: [1, 2] in [1, 2, 3] 
Out[2]: False 
3

実際は非常に簡単です。

if/for element in list-like object. 

具体的には、リストの場合、そのリスト内のすべての要素を比較します。 dictをリストのようなオブジェクト(iterable)として使用する場合、dictキーを反復処理するオブジェクトとして使用します。

乾杯

編集: あなたの場合、あなたが「リスト内包表記」の使用をしなければならないために。

[True for element in list1 if element in list2] 
+0

私はあなたの答えを理解できないと思います - 'リストのようなオブジェクト'と' for list-like object'の要素は、Pythonでは根本的に異なる2つの操作です。 2つめはメンバシップテストではなく、* iteration *を実行します。最初のものはメンバシップテストを行いますが(私の答えを見てください)、 'if'は構文の一部ではありません。 –

+0

私は知っています。私は 'in'キーワードの他の使い方を実証したかっただけです。 –

+0

'if'を使います。一を足す。 – akrun

関連する問題