2016-08-20 58 views
-4

有没有什么办法来检查严格子列表:检查严格子列表

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][1,2,3,4]

+1

看的文档,你几乎得到它:https://docs.python.org/3/library/stdtypes.html#set.issubset – Blender

+2

为什么要第二个例子返回'FALSE'?显然它应该是'真实'? –

回答

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 
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