2016-08-20 61 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