列表的子集,其中包含另一个列表中可用的元素

时间:2015-01-10 10:36:49

标签: python

我是python中的新手。 我想得到一个列表的子集,其中包含另一个列表中可用的元素。 如果我想在R中做,我会这样做:

aa=c(1,1,1,1,2,2,2,3,3,4)
bb=c(1,4)
aa[aa %in% bb]
# 1 1 1 1 4

请您将此代码从R转换为python吗? 非常感谢

1 个答案:

答案 0 :(得分:3)

使用列表推导,将b视为有效成员资格测试的集合:

a = [1, 1, 1, 1, 2, 2, 2, 3, 3, 4]
b = {1, 4}
result = [elem for elem in a if elem in b]

演示:

>>> a = [1, 1, 1, 1, 2, 2, 2, 3, 3, 4]
>>> b = [1, 4]
>>> b_set = set(b)
>>> [elem for elem in a if elem in b_set]
[1, 1, 1, 1, 4]