检查严格的子列表

时间:2016-08-20 20:18:43

标签: python

有没有办法检查严格的子列表:

std::string&& rstr = std::forward<std::string>("HelloWorld!");

鉴于这些列表,我希望实现这样的目标:

a = [1,2,3]
b = [1,3]
c = [1,2,3,4]

>> a.is_strict_sublist(c) True >> b.is_strict_sublist(c) False

我改述了我的问题:

这就是我想要做的。我正在遍历一个图,我有几条路径(节点列表)。不幸的是,我发现重复和子列表。除了使用Update:

之外,还有更好的方法可以删除子列表吗?

在上面的示例中,我只想要两条路径:issubset[1,3]

2 个答案:

答案 0 :(得分:2)

>>> a = {1, 2, 3}
>>> b = {1, 2, 3}
>>> c = {1, 3}
>>> b <= a # is subset
True
>>> b < a # is strict subset
False
>>> c < a
True

答案 1 :(得分:2)

如上所述,您可以使用set.issubset来电:

>>> a = [1,2,3]
>>> b = [1,3]
>>> c = [1,2,3,4]
>>> set(a).issubset(b)
False
>>> set(a).issubset(c)
True
>>> set(b).issubset(c)

或者,对于严格的子集匹配,您还可以使用小于运算符:

>>> set(a) < set(c)
True