2016-07-26 80 views
2

我开始学习更多关于Python的知识。一个功能我经常想,但不知道如何编程/做在Python是x %in% y运营商R.它的工作原理就像这样:Python中%等于运算符的百分比

1:3 %in% 2:4 

##[1] FALSE TRUE TRUE 

x的第一个元素(1)在y所以不匹配FALSE作为x(2 & 3)的最后两个元素确实在y中匹配,因此他们得到TRUE

不,我预计这个工作,因为它不会R中无论是工作,但在使用Python ==我得到:

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

我怎么能拿Python中同一类型的操作?如果这样的操作符已经存在于其他地方,我不会绑定到基本的Python。

+0

那是'[范围(x)范围内(2.5)(1.4)]? – khelwood

+4

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

+1

这是如何重复?另一个问题要求熊猫特定的解决方案,答案与'in'的一般概念无关。 –

回答

1

%in%在Python中只是in。但是,像Python外numpy的大多数其他东西一样,它不是矢量化的:它不是矢量化的:

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

我不知道我明白你的答案 - '如果列表类对象'和'列表类对象中的元素'是Python中两个基本不同的操作。第二个执行* iteration *,而不是成员资格测试。第一个执行成员测试(请参阅我的答案),但是“if”不是语法的一部分。 –

+0

我知道。我只是想演示'in'关键字的其他用法。 –

+0

好用'if'。加一。 – akrun